舍入到最接近的整数

时间:2013-08-16 05:17:10

标签: c# math rounding

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

Math.Round(1.79769313486232E+308, 0)

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

任何人都可以帮助我。?

4 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:1)

最接近的整数与你试图围绕的数字相同;它有309位数字:

  1.79769313486232E+308 == 1797693134862320000....00
科学记数法中的“E + 308”表示“在308次幂中乘以10”。一个简单的例子:

1.234E + 3 == 1.234 * Math.Pow(10,3)== 1.234 * 1000 == 1234

您可以通过打印出数字来轻松说服自己:

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

答案 2 :(得分:0)

double.Parse("1.00E+4", CultureInfo.InvariantCulture)

试试这个

答案 3 :(得分:0)

为我工作

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

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