C# float 神奇地改变值(value)

标签 c# floating-point


我有一个 float ,其中包含一个非常重要的值,它必须非常精确。
我遇到的问题是我总是只更改 float 的值 + 和 -(这里没有除法)。
更改值大约 20 次后,值不是预期的 0.05,而是 0.0499989。< br/> 这是为什么?我不是在转换 float ,我不是在划分它,但它神奇地从 0.05 变为 0.049989。
我尝试了 Math.Round(value, 2); 但它没有返回0.05 要么。我现在该怎么办??

最佳答案

许多(如果不是大多数)语言中的浮点变量仅保存实际值的不精确近似值。您可以使用 decimal 数据类型解决 C# 中的问题。 See this SO question.

关于C# float 神奇地改变值(value),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4542575/

相关文章:

c# - 如何为 DateTimePicker DatePart WPf 设置格式

c# - Dotnet Core Windows 服务中的多个托管服务

c - 为什么 float 变成 NaN

postgresql - PostgreSQL 上 float 的模运算

c++ - 有没有更有效的方法来包装 float ?

c# - 使用 ASp.net MVC3 插入数据库后如何显示类似 "successfully Inserted"的警告消息

c# - 使用互操作将多个单词表添加到单词中

C# 通过反射将派生类转换为基类异常

c# - 表达式和分配的对象之间的浮点不一致

javascript - 如何在 JavaScript 中区分一位小数 float 和整数