我正在查看 C 应用程序代码,发现整数除法的浮点数提高了精度,但我不明白为什么。 例如。将浮点数 12926.0 除以整数 100 应该得到 129.26,但我得到的结果是 129.259995
下面是实际代码的简单代码表示。
#include<stdio.h>
#include<stdlib.h>
void main()
{
int i=12926;
float k=0.0;
k=(float) i / 100;
printf("k <%f>\n",k);
}
我搜索了解释并尝试在 GDB 中调试时评估值和表达式 -
(gdb) print 12926.0 / 100.0
$39 = 129.25999999999999
(gdb) print (float) i / 100
$40 = 129.259995
(gdb) print i / 100
$41 = 129
困惑为什么 C 将结果显示为 129.259995 而不是 129.26。有没有办法控制精度长度得到 129.26 作为结果?