如何在不使用 10 次方表示的情况下将双精度数转换为字符串 (E-05)
double value = 0.000099999999833333343;
string text = value.ToString();
Console.WriteLine(text); // 9,99999998333333E-05
我想要绳子text为 0.000099999999833333343 (或者接近这个值,我不是在做火箭科学:)
我尝试过以下变体
Console.WriteLine(value.ToString()); // 9,99999998333333E-05
Console.WriteLine(value.ToString("R20")); // 9,9999999833333343E-05
Console.WriteLine(value.ToString("N20")); // 0,00009999999983333330
Console.WriteLine(String.Format("{0:F20}", value)); // 0,00009999999983333330
执行 tostring N20 或 format F20 似乎最接近我想要的,但我最终得到了很多尾随零,有没有一种聪明的方法来避免这种情况?我想尽可能接近双重表示 0.000099999999833333343
Use 字符串.Format() http://msdn.microsoft.com/en-us/library/fht0f5be.aspx与格式说明符 http://msdn.microsoft.com/en-us/library/s8s7t687(VS.71).aspx。我想你想要 {0:F20} 左右。
string formatted = String.Format("{0:F20}", value);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)