我正在尝试将指数形式的数字转换为其十进制等值。例如:
3e43 => 3 000 000 000 000 000 000 000 000 000 000 000 000 000 000 0
我已经阅读了文档,并且说我可能会这样做
double.Parse(expNumber.ToString(), NumberStyles.AllowExponent | NumberStyles.AllowDecimalPoint);
但是当我尝试将3e43转换为十进制时,它只是将其转换为3E + 43而不是我期望的数字(我知道它是关于双数据类型精度的)。有没有办法做到这一点?
另外,有没有办法将3e-43转换为十进制等值?似乎decimal.toString这次没有工作,因为它是一个很小的数字。
答案 0 :(得分:1)
如果你想看到所有的零
只需使用Double.ToString
它有各种重载来做不同的事情
var input = "3e43";
var val = double.Parse(input, NumberStyles.AllowExponent | NumberStyles.AllowDecimalPoint);
Console.WriteLine(val);
Console.WriteLine(val.ToString("N0"));
Console.WriteLine(val.ToString("f"));
<强>输出强>
3E+43
30,000,000,000,000,000,000,000,000,000,000,000,000,000,000
30000000000000000000000000000000000000000000.00
其他资源