如何圆到一半,总是朝着积极的方向
本文关键字:方向 何圆 一半 | 更新日期: 2023-09-27 18:06:33
如何实现以下四舍五入?
0.012608376> 0.015
2.1> 2.5
2.4> 2.5
2.5>2.5
2.6> 3
。
public double Round(double input, int decimalPlaces)
{
double precision = 2.0 * Math.Pow(10, decimalPlaces - 1);
// Ceiling also rounds negative values in positive direction
return Math.Ceiling(x * precision) / precision;
}
像这样使用:
Round(0.012608376, 3) returns 0.015
Round(2.1, 1) returns 2.5
Round(2.4, 1) returns 2.5
Round(2.5, 1) returns 2.5
Round(2.6, 1) returns 3
Round(.01, 2) returns .05
顺便说一下,最好与小数一起使用
static double RoundHalfUp(double value) {
var scale = 1.0;
while (value * scale < 0.1) scale *= 10;
return Math.Ceiling(value * 2) / (2 * scale);
}
示例代码。这根本没有考虑到特殊情况,是的,它失败了你的第一种情况,因为它不清楚你想要什么。
取要舍入的小数点后的位。如果大于5,四舍五入。如果小于5,四舍五入并加5(到小数点后),如果等于5,什么都不做。
2.1>四舍五入到2.0> add .5> 2.5
2.4>四舍五入到2.0> add .5> 2.5
2.5>2.5
2.6>四舍五入
这很困难,因为您永远不会四舍五入相同的小数点。难道没有更好的办法吗?您不应该将数据舍入到不同的位置,这取决于它有多少小数点。例如,你应该总是四舍五入到十分之一,或者总是四舍五入到百分之一,而不是根据数据四舍五入。