decimal.Round和Math.Round之间的区别

19
在C#中,Math.Round和decimal.Round函数有什么区别?

7
没有区别。Math.Round(decimal) 调用 Decimal.Round(decimal)。http://referencesource.microsoft.com/#mscorlib/system/math.cs,85130852558b2bc9 - Slai
2个回答

17

没有区别。

Math.Round(decimal) 源代码:

public static Decimal Round(Decimal d) {
        return Decimal.Round(d,0);
}

.NET Framework参考源代码

为了澄清,这是decimal.cs类的源代码:

public static Decimal Round(Decimal d) {
        return Round(d, 0);
}

Math.Round中,有效数字的数量被设置为0,这是有所不同的。 - Haney
1
只有在你不提供要舍入的位数时,才需要使用@Haney。decimal.Round(Decimal d) 做的事情是一样的。 - Justin Loveless

3

是的,就答案而言没有区别,但传递值是不同的。 Math.Round接受double和float类型,但decimal.Round仅接受decimal结构体


我不知道这是否曾经是正确的,但现在不是了。Math.Round() 方法有 decimal 类型的重载。 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接