关于输出的问题
程序如下:main()
{
float x=234.89;
printf("%f\n",x);
printf("%08.3e%.3e\n",x,x);
}
为什么其输出的答案是x=234.889999而不是x=234.890000呢?后面的不是补上零就可以了吗?
为什么下面的一个输出答案都是2.35e+02呢?对于%08.3e这个不是应该前面加零吗? 关于单精度浮点数在计算机中的表示,忘了,楼主查查资料吧
计算机想法和人不一样,它不懂得加0哈 第一个问题我也碰过~改成double就可以了~float的有效位理论上来说是7位~实际使用并不精确~但不代表不准确~因为234.889999是约等于234.89的~输出的位如果超过了7位就会出现错误~7位以内还是正确的
以指数的形式输出就不太清楚了~几乎没用过这个 补零应该是对整数起作用巴……08大概被无视了?
.3的确是保留三个有效数字……
页:
[1]