第1个回答 2009-02-03
单精度有24位二进制有效数字。首位必须是1。
最长的情况是第一位十进制是1。1 / 2 ^ 23 = 0.00000011920928955078125,剩余位是这个的倍数。
最短的情况是第一位十进制是8或者9。这个时候小数只能用20位。1 / 2 ^ 23 = 0.00000095367431640625。
大体就是这个意思,但是为什么怎么看都不应该有6位精度的情况|||本回答被提问者采纳
第2个回答 2009-02-03
2进制存储,换算成10进制,精度就不一定是固定多少位了,会有1位的差别
第3个回答 2009-02-03
#include <stdio.h>
int main()
{
float x = 1.123f;
printf("%.16f", x);
return 0;
}
自己测
第4个回答 2009-02-03
定义float f;
f=100.0/3.0;
cout<<f;
得f=33.3333