我在谭浩强的书上看到这样一句话:
“所有的浮点运算都是以双精度进行的,即使仅含float单精度量运算的表达式,也要先转换成double型,再作运算。”
既然float都要转换为double,那float还有什么用呢?谢谢!
c语言float和double的区别
c语言float和double的区别如下:1、精度不一样,float是单精度,double是双精度;2、表示小数的范围不一样,double能表示的范围比float大;3、double在内存中,占8个字节,float在内存中,占4个字节。%f默认保留6位小数,不足位以0补齐,超过六位按四舍五入的方法保留6位,若想输出指定位数,在格式化...
c语言中float与double有什么区别?
在C语言中,float与double是两种用于存储浮点数的类型。它们之间最主要的差异在于内存占用量以及能够表示的数值精度。float类型使用4字节的内存来存储数据,而double类型则需要8字节。这使得double类型能够表示更高精度和更宽范围的数值。实际上,double类型的精度大约是float类型的两倍。举个例子,对于数值1.9...
c语言中double和float的区别
在C语言中,double和float两种数据类型的主要区别在于精度和内存占用。它们都是浮点数类型,用于表示小数,但浮点数的精度以及取值范围有所区别。double的精度更高,通常拥有16位的有效数字,而float的精度相对较低,只有7位。这导致double的取值范围比float大,因此double占用的内存空间更多,一般为8字节,相...
C语言:float型与double型的转换问题
float精度不高,保存小数的位没double多。假如float用8位保存小数点后的数据,精度是2的负8次方,也就是1\/256 的精度,而double比float多,比如说是16位,就是1\/65536 的精度。需要明白的是,浮点数表示的数是有限的,不可能表示所有的实数,由于精度的原因,会有偏差。你可以换成double型,显示的...
C语言中float和double的问题。
float 有效数字6-7位,double 有效数字14-16位,同编译器有关。标准的C规定 float 用 32 位2进制,double 用 64 位2进制。用格式: printf("x=%.10f\\n",x); 可以输出小数10位。(1) x=2222222222.22222 -- 15 位精度,第16位起含舍入误差,(2) x=22222.67 -- 7位精度, ...
C语言这个程序用double型和float型为什么结果不一样
你好!!1、float 和double 的精度本身就是不一样的;2、double 和 float 的区别是double精度高,有效数字16位,float精度7位;3、输入匹配的问题:f 和 float 是对应的 lf 和 double 是对应的 d 和 int 是对应的 不匹配就会出错
C语言float 和double的问题
计算时,float与double 内部都转换成统一的标准双精度格式计算,再返回你对应类型的值;保存到存储器时,float短,节省空间。
C语言的float和double的问题。
IEEE规定float有32位 double有64位。一般来说软件都是执行这个标准的,一般机器也都是支持这个标准的,所以一般不需要考虑机器与软件差异的问题。这两种类型的有效位数不同主要是由尾数部分的位数不同导致的:double的尾数部分长度更大,因此能表示的二进制小数就多,对应到10进制小数时精度也更大;float的...
C语言中浮点数float和double输出的问题
float的精度是6到7位,就是说连整数部分有6位是可信的,再长了就是机器垃圾值了;double有16到17位是可信的,再多了也是机器垃圾值。下面的代码可说明这一问题。float型x的值从第8位2开始就是垃圾值了,尽管要求输出小数点后10位;double型y的值从第18位起也是垃圾值,尽管要注输出了小数点后20...
c语言float和double的问题。
scanf 时,格式定义和类型必须一致,输出时可以当成float型,但可能会有精度和溢出的问题。所以你可以只把下面的改成lf scanf("%f",&r); ---> scanf("%lf",&r);这儿是原因:Because C will promote floats to doubles for functions that take variable arguments. Pointers aren't promoted ...