【发布时间】:2011-06-27 09:12:40
【问题描述】:
我使用 double 类型来表示货币值。 如您所知,某些数字表示不正确,例如 19,7949999999.... 近似为 19,80。
我该如何解决这个问题? 我尝试改用 Decimal,但问题仍然存在。
谢谢。
【问题讨论】:
-
十进制不应该有同样的问题。你在做什么样的计算? (也许我误解了:你说 19.794999 近似于 19.80 - 你想要 9 重复值?没有办法 double 会在 19.795 和 19.80 之间四舍五入 - 它们相距太远, double 有足够的精度来区分那些.)
-
十进制是最好的货币值,显示代码在你处理它时似乎有问题
-
您能否使用
decimal显示一些仍然显示这些问题的代码?decimal中为尾数留出的空间量非常惊人。 -
既然我们有了答案,我们能不能有问题!
标签: c# .net double decimal currency