我需要以负精度执行舍入值。据我所知,.NET中的Math.Round()
确实不支持负精度。例如:
ROUND(43.34566,-1)
以上返回40。
请建议如何实现这一点。
答案 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;