如何圆到一半,总是朝着积极的方向

本文关键字:方向 何圆 一半 | 更新日期: 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>四舍五入

这很困难,因为您永远不会四舍五入相同的小数点。难道没有更好的办法吗?您不应该将数据舍入到不同的位置,这取决于它有多少小数点。例如,你应该总是四舍五入到十分之一,或者总是四舍五入到百分之一,而不是根据数据四舍五入。