wdjh.net
当前位置:首页 >> C语言中FloAt和DouBlE为什么输出会完全不一样? >>

C语言中FloAt和DouBlE为什么输出会完全不一样?

float 和 double 在输出的时候其实都是用%f输出。c语言中,浮点型输出默认都是输出小数后6位。你为什么会认为double会输出到小数后15位呢,我感觉你是认为double的精确度有15位,float的精确度是7位,对吧,其实事实double和float在输出的时候都...

这里有个概念要搞清楚,精度和输出小数点后多少位不是一回事。精度是说某种类型的浮点数在C中计算时有多少位是有效的,这实际上是包括整数部分的,但不包括小数点那一位;而输出小数点后多少位是由输出函数printf中的控制字符串确定的。float的...

很正常的嘛,浮点的存储是按照IEEE754标准的。简单的说它内部是2进制的,63.245 根本不可能用2进制的浮点精确表示,所以才会有很少的误差。这是正常的。

double 和 float都可以用%f输出。默认6位小数。如果是其它要求,需要指定。如 printf("%.11lf\n%.3f",a,b);

你scanf和printf 两个程序中格式控制全是是%f,%f是float的格式控制,%lf才是double的。

输入float的时候用 scanf("%f",&x); 输入double的时候得用 scanf("%lf",&x); 输出的时候用同样的版: printf("y=%f",y);

double精度更高,是指它存储的小数位数更多,但是输出默认都是6位小数,如果你想输出更多小数,可以自己控制,比如 “%.10lf” 就输出10位小数,望采纳

float 为单精度,有效数字为6~7double 为双精度,有效数字为15~16 但他们在输出时,小数点后都有6位小数 小数是有精度限制的,像3.99999这类的没办法精确表现出了,只是一个近似的数

float是单精度实型,可以储存的有效小数位很少,一般在3-4位。 而double是双精度实型,存储的较多,在6-7一般不会有误差,在10-11位甚至也只会有小的误差。 但是double型需要的空间比float多。

我不太清楚你想问什么 不管什么编译器,都有 float占4个字节,即32位 double占8个字节,即64位 具体在输出中,一般情况小数点以后默认6位,但你可以通过输出函数printf控制,如printf("%.3f", 1.234);输出小数点后3位 具体有效数字位和小数部分...

网站首页 | 网站地图
All rights reserved Powered by www.wdjh.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com