⑴ c语言合法浮点数表示,如何判断是不是合法的谢谢 详细的
既然是浮点数,那么这个数字中仅含有一个或多个阿拉伯数字、一个小数点,还有就是英文字母e(或E)。下面举几个例子。
2.35、.65、0.1、1e-3、1.0E+3(要注意的是阶码e(E)后面的+、-的前后不能有空格)
⑵ C语言中单精度和双精度浮点型数据的数值范围是多少怎么算出来的请大虾帮忙了!
今天看书也是发现了这个问题但是网络一番网上并没有想要的答案,思索后得出结果,首先浮点型是32位精度 有一个符号位8个指数位23个尾数位
关于精度的计算单精度8位阶码,1位符号,剩下23位尾数,算出2的负23次方,得到0.00000011920928955078125
前面0有多少个,就表示能精确到那一位,所以精度为6提供七位有效数字
双精度11位阶码,1位符号,剩下52位尾数,算出2的负52次方,得到0.
所以精度为15,提供16位有效数字。
然后关于范围的计算:范围是指数位控制的,指数位为8,有效为为7(这里涉及到余码,有兴趣的同学可以查看相关资料)所以最大范围为2^7=128 这里是指数部分 化为十进制则为
2^128=3.402823669384635E38
所以范围为3.4E-38~3.4E+38
double同理
⑶ C语言中的浮点值是什么意思
就是常说的小数,浮点是意思就是数字中有个漂浮的点,这个点就是常说的小数点。
1、C语言中均支持两种浮点数,float和double。
其中double的精度,和表示范围比float要大。
另外,部分编译器支持更大精度的long double,但不是所有的编译器都支持。
以上为三种浮点数的类型。在定义的时候,需要以
TYPE var=init_value;
的方式定义,功能为定义一个名字为var,类型为TYPE的变量,并赋值初始值为init_value。
其中=init_value部分可以省略。
2、比如定义一个float类型的浮点变量为
float f;
定义一个类型为double的浮点型变量,并初始化值为1.234,写作
double d = 1.234;
⑷ C语言浮点型小数点后为多少位
单精度浮点型小数点后面有效数字为7位和双精度浮点型小数点后面有效数字为16位。
单精度在一些处理器上比双精度更快而且只占用双精度一半的空间,但是当值很大或很小的时候,它将变得不精确。当需要小数部分并且对精度的要求不高时,单精度浮点型的变量是有用的。
例如,当表示美元和分时,单精度浮点型是有用的。在foxpro中,单精度浮点型是为了提供兼容性,浮点数据类型在功能上等价于数值型。
(4)c语言浮点数和尾数扩展阅读:
浮点数是属于有理数中某特定子集的数的数字表示,在计算机中用以近似表示任意某个实数。具体的说,这个实数由一个整数或定点数(即尾数)乘以某个基数(计算机中通常是2)的整数次幂得到,这种表示方法类似于基数为10的科学计数法。
浮点数参与的运算,这种运算通常伴随着因为无法精确表示而进行的近似或舍入。补码系统的0就只有一个表示方式,这点和反码系统不同(在反码系统中,0有二种表示方式),因此在判断数字是否为0时,只要比较一次即可。
⑸ c语言浮点数相关问题
内存中浮点数都用二进制表示,二进制小数不是你理解那种到n位截断,这不是十进制,没法按照十进制数那种方式截断。
四舍五入只是碰巧,这里没有截断到3.142机制还比较特殊
⑹ C语言中float是什么类型
C语言中float是:单精度浮点型数据类型。
浮点型数据类型,FLOAT 数据类型用于存储单精度浮点数或双精度浮点数。浮点数使用IEEE(电气和电子工程师协会)格式。浮点类型的单精度值具有 4 个字节,包括一个符号位、一个 8 位 二进制指数和一个 23 位尾数。
由于尾数的高顺序位始终为 1,因此它不是以数字形式存储的。此表示形式为 float 类型提供了一个大约在 -3.4E+38 ~ 3.4E+38 之间的范围。
应用经验:
float浮点数两个浮点数不相等和精度的问题,在实际开发中,经常用整数代替浮点数,因为整数是精确的,效率也更高。
例如人的身高一米七五,以米为单位,用浮点数表示是1.75米,如果以厘米为单位,用整数表示是175。
在 C 和 C++ 中,如下赋值语句:
floata=0.1;编译器报错:warning C4305: 'initializing' : truncation from 'const double ' to 'float '
原因:在 C/C++ 中,上述语句等号右边 0.1,认为是个 float,但是编译器却把它认为是个 double(因为小数默认是 double),所以要报这个 warning,一般改成0.1f就没事了。
以上内容参考:网络-FLOAT
⑺ 在c语言中,单精度浮点数与双精度浮点数的区别与联系。
在C语言中,单精度浮点数(float)和双精度浮点数(double)类型都是用来储存实数的,双精度是用记忆较多,有效数字较多,数值范围较大。两种类型对应的格式字符也有不同。 以Turbo C 为例: float 单精度浮点数使用记忆:4 字符(32 位元)有效数字:6-7 位数值范围:�6�13.4e38 至 �6�13.4e�6�138、0、3.4e�6�138 至 3.4e38格式字符:%f %e %g double 双精度浮点数使用记忆:8 字符(64 位元)有效数字:15-16 位数值范围:�6�11.7e308 至 �6�11.7e�6�1308、0、1.7e�6�1308 至 1.7e308格式字符:%lf %le %lg (输入时格式字符串不加 l 会出错,输出时仍可用 %f %e %g) 其他系统大同小异,只是实际数值可能有点不同。 两种类型可以互相赋值,只是 double 型赋给 float 型的时候有可能在数值范围外。两种类型混合计算的时候自动换为 double 型计算。
⑻ C语言 浮点数的阶码和尾数的长度是有限制的,超过的部分该如何处理会有什么影响
超过的部分会被丢弃。
阶码超出的话,就溢出错误了,上溢的话程序就不能运算了;下溢的话,数据就从非0变成0了。有时会造成原则的错误(如除以0出错、求0的对数等等),有时则不造成严重的影响。
尾数超出的部分舍去, 这个就是平常所说实数处理的误差问题或精度问题。举个最简单的例子:1/10即0.1,在二进制下就无法准确地表示出来。(在二进制下,它是一个无限循环小数)
⑼ C语言中,浮点类型和整数类型的区别具体在哪些方面
1、包含类型方面的区别:
整数类型包含byte型、int型、short型、long型, 浮点类型包含float(单精度)型、double常量
2、取值范围的区别:我们可以看到整数类型最大的取值是:1,844,674,407,370,955,161,共有19位数。而浮点数中float的取值范围就有39位数3.4E+38。
3、精度的区别:整数类型是一个准确的数值,而浮点数很多时候是一个看似值。比如float类型就只用确保前面6~7位是准确的。如:float f = 123456789; //8和9这两个数值就可能是不准确的。
(9)c语言浮点数和尾数扩展阅读:
C语言其他数据类型:
一、基本类型
1、整形类型:int ,short int,long int,long long int(C99),char,bool
2、浮点类型:float ,double,双精度浮点型(float_complex,double_complex,long long_comples)
二、枚举类型 enum
三、空类型 void
四、派生类型
指针类型 *、数组类型 、结构体类型 struct、共用体类型 union、函数类型
参考资料来源:网络—数据类型
⑽ 在C语言中的实型变量分为float型和double型,按浮点数进行存储,分为数符、_______和尾数几部分。
在c语言中的实型变量分为float型和double型,按浮点数进行存储,分为数符、阶码
和
尾数
几部分