如何将双精度从10位表示法转换为十进制?

时间:2018-04-09 18:03:18

标签: c# double decimal

我正在使用的方法返回一个双数字。在0之后,该数字最多可以有8个小数符号。当小数点接近1时,它将返回0.045之类的值。但是当数字变得非常小时,它开始将其转换为科学记数法,我会得到类似的结果:4.99E-06。 如何获取此变量并将其转换为小数,以便显示为0.00000470?

1 个答案:

答案 0 :(得分:1)

可以这样做:

double myValue = 0.000007812345d;
string myValueAsString = myValue.ToString("F20");
Console.Out.WriteLine(myValueAsString);

其中F20指定您希望在小数位后面有20位小数的固定点输出。见https://docs.microsoft.com/en-us/dotnet/standard/base-types/standard-numeric-format-strings

稍后如果您需要将字符串值转换回double,您可以执行以下操作:

double myConvertedValue = Double.Parse(myValueAsString);
Console.Out.WriteLine(myConvertedValue); // note that this string is treated with scientific notation

如果原始双变量超出范围,则只需执行此操作。否则,只需使用原始双倍进行计算等。