我需要以负精度对值进行舍入。据我检查,Math.Round()
.NET 不支持负精度。例如:
ROUND(43.34566,-1)
以上返回 40。
请建议如何实现这一点。
将逗号移动到您想要返回的精度,然后四舍五入。
double n = 43.34566;
double roundingValue = -1;
double precision = Math.Pow(10, roundingValue);
n *= precision;
double result = Math.Round(n, 0) / precision;
ROUND(43.34566 / 10,0) * 10 将起作用;酌情概括。
真的很简单:
Math.Round(num / Math.Pow(10.0, -(precision))) * Math.Pow(10.0, -(precision));
//this won't work for positives but oh well