C#浮动神奇地改变了价值

ale*_*lex 3 c# floating-point


我有一个浮动持有一个非常重要的值,必须非常精确.
我遇到的问题是我正在改变浮点数的值只有+和 - (这里没有除法).
将值改变约20次后,该值不是预期的0.05,其为0.0499989.
为什么是这样?我没有施放漂浮物,我不是它,但它神奇地从0.05变为0.049989.
我试过Math.Round(value, 2);但它也没有返回0.05.我现在应该怎么做??

Jer*_*ler 9

许多(如果不是大多数)语言中的浮点变量仅包含实际值的不精确近似值.您可以使用decimal数据类型在C#中解决问题.看到这个问题.

  • 浮点数和小数*都*具有表示错误,并且小数实际上在每个位精度的基础上具有*更大*平均表示错误.它们之间的区别在于,十进制中具有*零*表示错误的数量是您在进行财务计算时可能要表示的数量. (10认同)