1

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

Math.Round(1.79769313486232E+308, 0)

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

谁能帮我。?

4

4 回答 4

3

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

于 2013-08-16T05:20:52.257 回答
1

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

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

“E+308”在科学计数法中的意思是“将这个乘以 10 的 308 次方”。一个简单的例子:

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
于 2013-08-16T06:06:48.917 回答
0
double.Parse("1.00E+4", CultureInfo.InvariantCulture)

试试这个

于 2013-08-16T05:28:57.857 回答
0

为我工作

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

 BigInteger b = BigInteger.Parse("1.79769313486232E+308", NumberStyles.Any, CultureInfo.InvariantCulture);
于 2013-08-16T06:15:46.640 回答