【发布时间】:2015-02-22 14:20:17
【问题描述】:
我们遇到了一个问题,即使用 .toString() 方法对双精度值进行四舍五入,以便在 TextBox 中显示。
我们需要的是这样的:
双值:39621443.8975101998
字符串值:39621443.8975101998
但我们得到的是:
双值:39621443.8975101998
字符串值:39621443.8975102
我们已经用谷歌搜索并尝试了很多方法,但都没有奏效
任何帮助将不胜感激
【问题讨论】:
-
它最终会被四舍五入,否则它是一个可能有无限位数的数字。问题是你想要多少位数?
-
其实位数是不可预测的,从1到10甚至更多位数不等
-
请出示您的代码。
-
到目前为止,我们已经尝试过定点,但正如 msdn 所说,它会导致舍入值:1234.567(“F”,en-US)-> 1234.57。但是我们需要没有任何四舍五入的确切值。我们甚至尝试过 ("R") 格式说明符,但还是没有得到想要的结果
-
Double 的精度有限。它只是不能代表你想要的尽可能多的数字。
39621443.897510198==39621443.897510204这个条件实际上是真的。
标签: c#