【发布时间】:2011-03-30 15:15:25
【问题描述】:
我使用实体框架作为 ORM 和 Sql Server 2008 作为服务器。
我的应用中有财务操作,因此我使用了金钱列。但是当结果是例如 2.99986 时,它存储在数据库值 2.9998 中,而期望值是 2.9999。
是否有任何选项可以让它像数学所说的那样工作,如果没有,我如何在 C# 中对数字进行四舍五入,以便 Math.Round(2.99986) 给出的结果为 2.9998,只需在第 4 次之后削减其余的 sigits地点。
感谢您的帮助
我想出的唯一解决方案是将我的数字乘以 10000,然后将其截断,然后除以 10000 :) 还有其他更好的解决方案吗?
【问题讨论】:
-
通常在执行财务计算时需要尽可能高的精度。为什么要less?
-
因为您通常不需要精确度,而需要准确度。您在整个企业中都采用同样的方法,否则您会遇到令会计师头晕目眩的四舍五入错误。如果另一个系统正在跟踪类似的数字,精确到小数点后 4 位,您只需以相同的方式进行操作即可避免令人头疼的问题。
-
hello之后的第二段和第三段有冲突。第二个说想要的是 2.9999。第三个说期望是 2.9998。编辑(最后一段)说期望是 2.9998。
标签: c# .net sql-server entity-framework-4