如何舍入double值以除去连续的9或0]]

问题描述 投票:1回答:1

如何舍入以下值以从双精度值中删除连续的9。.Net框架和.net核心中的重要数字舍入方式不同。

使用下面的代码通过将值5.9E-12传递给12位有效数字,将双精度值四舍五入为有效数字

  private static double RoundToSignificantDigits(double d, int digits)
         {
             if (d == 0)
                 return 0;

              double scale = Math.Pow(10, Math.Floor(Math.Log10(Math.Abs(d))) + 1);
              return scale * Math.Round(d / scale, digits);
         }

。Net核心结果:5.8999999999999995E-12.Net Framework结果:5.9E-12

如何在.Net核心中获得类似.Net框架的结果

如何舍入以下值以从双精度值中删除连续的9。 .NET框架和.net核心中的重要数字舍入方式不同。使用下面的代码对...

c# double rounding
1个回答
0
投票

仍不清楚您要达到什么目标。但是您不能正确地将任何十进制数字表示为double值。

© www.soinside.com 2019 - 2024. All rights reserved.