啊哈磊_编程从这里起步
标题:
计算机傻了吧。。。。。。。
[打印本页]
作者:
南风时
时间:
2013-8-6 21:49
标题:
计算机傻了吧。。。。。。。
int main()
{
float a,b,c;
a=5.2;
b=3.1;
c=a+b;
printf("%f",c);
system("pause");
return 0;
}
为何计算结果为8.299999,不是明摆着是8.3嘛。
作者:
cdbzlp
时间:
2013-8-6 22:47
float型在内存占32位,有些十进制数在转化为2进制数时会精度损失
作者:
rosynirvana
时间:
2013-8-6 22:54
因为计算机中的浮点数和你理解的实数不是一种东西
作者:
超神级
时间:
2013-8-7 07:39
兄弟你好犀利
作者:
sky0521
时间:
2013-8-7 10:29
IEEE754精确规定 0.1 + 0.2 =0.30000000000000004
作者:
sanfen
时间:
2013-8-9 18:17
因为浮点型数据不能完全被精确存储,有些可以,有些是不可以的。
作者:
sanfen
时间:
2013-8-9 18:19
因为浮点型数据(float和double)都不能保证可以精确的存储一个小数
作者:
梦中的婚礼
时间:
2013-8-11 19:32
浮点数不等于实数
作者:
4k-Rn
时间:
2013-8-27 16:27
浮点数不等于实数
作者:
guoliang
时间:
2013-9-16 18:57
把printf("%f",c);改成printf("%.1f",c);
.1就显示一位小数 .2就显示两位小数,,依次类推
作者:
1935515130
时间:
2014-3-14 19:44
代码如下:#include <stdio.h>
#include <stdlib.h>
int main()
{
double a,b,c;
a=5.2;
b=3.1;
c=a+b;
printf("%lf",c);
system("pause");
return 0;
}
作者:
葛奕成
时间:
2014-3-17 17:09
这样吧:
#include <stdio.h>
#include <stdlib.h>
int main()
{
double a,b,c;
a=5.2;
b=3.1;
c=a+b;
printf("%lf",c);
system("pause");
return 0;
}
复制代码
欢迎光临 啊哈磊_编程从这里起步 (https://bbs.codeaha.com/)
Powered by Discuz! X3.2