使用c#将科学记数法转换为长数?

使用c#将科学记数法转换为长数?,c#,C#,我需要使用c# 我已经尝试过使用Double.Parse(3.58E+14,System.Globalization.NumberStyles.Float)但是它向上舍入了值,但没有返回实际的数字。您应该使用Parsefromdecimal var parsed=decimal.Parse(“8.9148E+19”,System.Globalization.NumberStyles.Float); 如果要检查和转换指数值,请使用以下命令: //your value string val = "8

我需要使用c#


我已经尝试过使用
Double.Parse(3.58E+14,System.Globalization.NumberStyles.Float)
但是它向上舍入了值,但没有返回实际的数字。

您应该使用
Parse
from
decimal

var parsed=decimal.Parse(“8.9148E+19”,System.Globalization.NumberStyles.Float);

如果要检查和转换指数值,请使用以下命令:

//your value
string val = "8.9148E+19";     
//create a dummy
double dummy;
//check if ist valid
bool hasExponential = (val.Contains("E") || val.Contains("e")) && double.TryParse(val, out dummy);
if (hasExponential)
{
    //if it is valid parse it
    decimal d = decimal.Parse(val, NumberStyles.Float);
}

什么意思?当我尝试
var a=Double.Parse(“8.9148E+19”,System.Globalization.NumberStyles.Float)时,您希望显示为字符串而不是科学记数法还是只进行计算;控制台写入线(a)我得到了“8.9148E+19”。您是如何看待这个值的?我想您实际上是在讨论将double转换为字符串时的格式设置。如果要显示所有数字,请尝试
double.ToString(“N”)
double.ToString(“F0”)
-例如
Console.WriteLine(double.Parse(“8.9148E+19”).ToString(“F0”)