【发布时间】:2015-06-26 06:38:32
【问题描述】:
我在 articles 和 MSDN 中多次阅读到 float(或 double)没有精确表示现实世界的整数或十进制值。正确的 !这在相等性检查出错或断言简单的加法或减法测试时可见。
也有人说float没有像0.1这样的十进制值的精确表示,但是如果我们在visual studio中声明一个float,比如float a = 0.1f;,它们在调试时如何显示精确的0.1?它应该显示类似0.09999999.. 的内容。我在哪里错过了一个了解它的链接。
这是一个外行的问题,或者我可能仍然缺少一些概念!
【问题讨论】:
-
0.1f类似于0.100000001490116119384765625,所以只有在第 9 个有效数字上,在最初的1之后你才有!= 0,而float只有大约 7 位精度。
标签: c# c++ .net floating-point