Floating point CPU计算中出现浮点错误

Floating point CPU计算中出现浮点错误,floating-point,Floating Point,我在CPU中的浮点赋值中发现了一个奇怪的结果 我的代码是 float W[0]=0.1; printf("%.10f",W[0]); 结果是0.1000000015 谁能帮我一个忙吗 谢谢。0.1十进制是重复的“”:0.0 0011 0011 0011 0011 0011 0011 0011 0011 0011 0011 0011 0011 0011 0011 0011。。。(0011重复,我用空格表示)。四舍五入到24个有效位,以适合浮点运算,即0.00011001101。也就是0.1000

我在CPU中的浮点赋值中发现了一个奇怪的结果

我的代码是

float W[0]=0.1;
printf("%.10f",W[0]);
结果是0.1000000015

谁能帮我一个忙吗


谢谢。

0.1十进制是重复的“”:0.0 0011 0011 0011 0011 0011 0011 0011 0011 0011 0011 0011 0011 0011 0011 0011。。。(0011重复,我用空格表示)。四舍五入到24个有效位,以适合浮点运算,即0.00011001101。也就是0.1000000149011919384765625。四舍五入到10位,小数点是0.1000000015。

我猜你得到的是机器epsilon:那么,当你搜索So或更宽的网络来查找术语
float increciate
,你没有看到十亿零一个帖子已经详细说明了你想知道的内容吗?请参阅其中一个。如果需要10位精确的十进制数字,请使用
double
。浮点的可能副本通常只有6位精度