根据C#中的比率舍入一个数字

时间:2014-01-21 13:05:43

标签: c# math rounding

我想围绕一个基于两个值的比率的数字。

该比率将包括大于或小于原始值

的值
ratio = newValue / originalvalue

newValue> originalValue 我可以使用以下方法舍入到最近的较低因子:

double NearestLowerFactor(float value, double factor)
{
    return Math.Floor(value / factor) * factor;
}

例如:

  • factor = 2
  • ratio = 3
  • NearestLowerFactor = 2

newValue< originalValue 我希望舍入到该因子的最接近的倒数。

因此,如果因子为2,我想根据1/2的因子进行舍入,即1 / 2,1 / 4,1 / 8,1 / 16等。

例如:

  • originalValue = 8
  • newValue = 3
  • ratio = 0.375
  • NearestLowerFactor = 0.25或1/4。

在这种情况下,我如何四舍五入到最接近的较低因子?

1 个答案:

答案 0 :(得分:1)

Math.Pow(factor, Math.Floor(Math.Log(ratio, factor)))