从指数表示法转换为非指数表示法

时间:2013-10-31 15:09:16

标签: c#

我试过了:

MessageBox.Show(System.Numerics.BigInteger.Parse("7.56e+011",
          NumberStyles.Float,
          CultureInfo.InvariantCulture));

但它继续显示7.56e + 011

3 个答案:

答案 0 :(得分:4)

您正在寻找格式化数字。您可以使用String.Format来执行此操作

string.Format("{0:F}",System.Numerics.BigInteger.Parse("7.56e+011",
          NumberStyles.Float,
          CultureInfo.InvariantCulture))

运行以下代码

Code in VS2012

给你以下MessageBox

MessageBox with string

您可以通过将格式更改为{0:F0}来指定无小数点。

答案 1 :(得分:0)

    decimal dec = decimal.Parse("7.7583877127496407E-6", 
    System.Globalization.NumberStyles.Any);
    Console.WriteLine(dec);

答案 2 :(得分:0)

尝试

BigInteger num = System.Numerics.BigInteger.Parse("7.56e+011",
      NumberStyles.Float,
      CultureInfo.InvariantCulture);

String text = num.ToString("F5"); // New format string, here with 5 digits. 

你的解决方案会再次从BigInteger隐式转换回字符串,如果指数很大,它会使用科学记数法。