Jimy 发表于 2017-10-10 16:28:39

为什么输出结果存在误差?

运行图1程序时,输入1.2,结果输出f1=0.000000。好像格式控制符应与变量类型对应。还是不太理解为什么输出的为0.000000
   
运行如图2,为什么结果为28.000000,存在舍入误差的原因是? 求助{:5_92:}

新手·ing 发表于 2017-10-10 16:35:50

这是计算机的“特性”。
不用在意这些细节,计算机浮点数都有这样的误差。

橙C 发表于 2017-10-10 17:57:26

图1:用double的大小数据覆盖float大小的内存块,写进去的是什么东西只有Scanf()知道!不一定是0的!搞不好会破坏栈!!
图2:(29.0 * 0.01)对于计算机浮点数计算都存在误差!!算出来可能是28.999999也可能是29.00001, 强转int之后去掉小数点后面的数据
页: [1]
查看完整版本: 为什么输出结果存在误差?