C# 将指数形式的数字转换为十进制

C# 将指数形式的数字转换为十进制,c#,double,decimal,exponential,C#,Double,Decimal,Exponential,我试图将指数形式的数字转换成十进制形式。例如: 3e43=>3 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 00

我试图将指数形式的数字转换成十进制形式。例如:

3e43=>3 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000

我看过文件,上面说我可以用 double.ParseexpNumber.ToString,NumberStyles.AllowExponent | NumberStyles.AllowDecimalPoint

但当我尝试将3e43转换为十进制时,它只是将其转换为3E+43,而不是我期望的数字。我知道这是关于双数据类型精度的问题。有办法吗


还有,有没有办法将3e-43转换成十进制的等价物?看来decimal.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而不是3e43这样的小数?我刚刚注意到,我可以动态地更改我想要显示的小数的数量,即使它是十进制还是非十进制。谢谢
3E+43
30,000,000,000,000,000,000,000,000,000,000,000,000,000,000
30000000000000000000000000000000000000000000.00