-1

我需要以负精度对值进行舍入。据我检查,Math.Round().NET 不支持负精度。例如:

ROUND(43.34566,-1) 

以上返回 40。

请建议如何实现这一点。

4

3 回答 3

1

将逗号移动到您想要返回的精度,然后四舍五入。

        double n = 43.34566;
        double roundingValue = -1;
        double precision = Math.Pow(10, roundingValue);
        n *= precision;
        double result  = Math.Round(n, 0) / precision;
于 2013-08-05T07:23:15.957 回答
1

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

于 2013-08-05T07:17:29.750 回答
1

真的很简单:

Math.Round(num / Math.Pow(10.0, -(precision))) * Math.Pow(10.0, -(precision));
//this won't work for positives but oh well
于 2013-08-05T07:19:48.163 回答