使用负精度在.NET中调用Math.Round()

时间:2013-08-05 07:15:14

标签: c# .net math

我需要以负精度执行舍入值。据我所知,.NET中的Math.Round()确实支持负精度。例如:

ROUND(43.34566,-1) 

以上返回40。

请建议如何实现这一点。

3 个答案:

答案 0 :(得分:1)

ROUND(43.34566 / 10,0)* 10将起作用;适当概括。

答案 1 :(得分:1)

非常简单:

Math.Round(num / Math.Pow(10.0, -(precision))) * Math.Pow(10.0, -(precision));
//this won't work for positives but oh well

答案 2 :(得分:1)

将逗号移动到要返回的精度,然后再舍入。

        double n = 43.34566;
        double roundingValue = -1;
        double precision = Math.Pow(10, roundingValue);
        n *= precision;
        double result  = Math.Round(n, 0) / precision;