何时使用Decimal.Round()而不是Math.Round()?

时间:2015-03-06 05:01:50

标签: c#

我注意到Math.Round()Decimal.Round()更灵活,因为它能够处理Decimal.Round()可以执行的所有操作,但也可以执行相同的double输入。那么,使用Decimal.Round()更好,或者一直使用Math.Round()更好的想法是否存在任何情况?

1 个答案:

答案 0 :(得分:4)

查看.NET源代码:http://referencesource.microsoft.com/#mscorlib/system/math.cs,4f39179a0098ab01

Decimal Math::Round(Decimal)被定义为对Decimal Decimal::Round(Decimal)的直接调用,因此这两者是语义类似物。

我认为默认情况下我会使用Decimal::Round来避免额外的函数调用,但是JIT应该优化它,所以我可能会使用Math::Round来保持一致与其他Math次调用(如果有的话)在同一代码文件中。