具有0.3值的硬编码双变量变为0.299999992

时间:2016-02-03 12:09:01

标签: c# double

在我的计算机上,当我使用0.3(或者某些其他值)的值对变量进行编码并调试并检查变量的值时,其值为0.29999992,但在我的朋友计算机中,它保持在0.3。

 //stores 0.29999992
double variable= 0.3;

是否存在配置问题或相关内容?

由于

2 个答案:

答案 0 :(得分:3)

这只是二进制浮点工作原理的一个工件。无法在0.3(或double中准确表示float。如果您需要(例如货币申请),请改用decimal

答案 1 :(得分:2)

欢迎来到浮点数的世界。一些看似无害的数字无法用浮点表示法精确表示。使用非常接近的近似值。