将指数形式的数字转为小数
Turn number in exponential form to decimal
我正在尝试将指数形式的数字转换为其等效的十进制数。例如:
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 似乎不起作用,因为它太小了。
如果你想看到所有的零
只需使用 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
其他资源
我正在尝试将指数形式的数字转换为其等效的十进制数。例如:
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 似乎不起作用,因为它太小了。
如果你想看到所有的零
只需使用 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
其他资源