如何在没有 10 表示的情况下将 double 转换为字符串 (E-05)
double value = 0.000099999999833333343;
string text = value.ToString();
Console.WriteLine(text); // 9,99999998333333E-05
我希望字符串文本是 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