四舍五入到最接近的整数

本文关键字:整数 最接近 四舍五入 | 更新日期: 2023-09-27 18:28:02

我有一个这样的数字:1.79769313486232E+308,我想把它四舍五入到最接近的整数。所以我尝试了下面的一个:

Math.Round(1.79769313486232E+308, 0)

但它仍然给出了相同的结果。

有人能帮我吗。?

四舍五入到最接近的整数

由于点后的数字少于309,因此您的数字是一个整数。科学记数法一定会让你感到困惑,例如1.234e+003也是一个整数,因为它等于1234。

最接近的整数与您尝试四舍五入的数字相同;它有309个数字:

  1.79769313486232E+308 == 1797693134862320000....00

"E+308"在科学记数法中的意思是"乘以308次方的10"。一个简单的例子:

1.234E+3==1.234*数学Pow(10,3)==1.234*1000==1234

你可以很容易地通过打印数字说服自己:

  BigInteger b = BigInteger.Parse("1.79769313486232E+308", NumberStyles.Any, CultureInfo.InvariantCulture);
  Console.Write(b.ToString()); // <- 1797693134862320000....00
double.Parse("1.00E+4", CultureInfo.InvariantCulture)

试试这个

为我工作

如果您正在使用.NET framework 4.0,请添加对System.Numerics的引用然后

 BigInteger b = BigInteger.Parse("1.79769313486232E+308", NumberStyles.Any, CultureInfo.InvariantCulture);