C#在C#中舍入两个小数位?

时间:2019-03-07 11:34:16

标签: c# floating-point numbers rounding

我有十进制数字。我想用两个地方将它们取整:

SAPSQL_DATA_LOSS

我尝试了Original Value : 6.3619 What I want : 6.37 Original Value : 5.12003 What I want : 5.13 Math.Celing。但是这些方法没有给我想要的值。

我不想截断十进制值。

4 个答案:

答案 0 :(得分:3)

尝试Ceiling方法:

  1. 缩放 value 6.3619 -> 636.19
  2. Math.Ceiling的帮助下
  3. 截断636.19 -> 637
  4. 最后,缩放结果向下637 -> 6.37

代码:

 var result = Math.Ceiling(value * 100.0) / 100.0;

演示:

double[] tests = new double[] {
  6.3619,
  5.12003,
};

string report = string.Join(Environment.NewLine, tests
  .Select(test => $"{test,10} -> {Math.Ceiling(test * 100) / 100.0}"));

Console.Write(report);

结果:

  6.3619 -> 6.37
 5.12003 -> 5.13

答案 1 :(得分:0)

答案 2 :(得分:0)

您应该尝试这个。

 var answer = Math.Ceiling(yourvalue * 100) / 100;

如果有帮助,请标记为答案。

答案 3 :(得分:0)

尝试使用

private double RoundValueUp(double value, int NbDecimals)
{
    double multiplier = Math.Pow(10, Convert.ToDouble(NbDecimals));
    return Math.Ceiling(value * multiplier) / multiplier;
}

因此,您可以像这样RoundValueUp(6.3619, 2);来使用它 关于LINK