如何在不使用 10 次方表示的情况下将双精度数转换为字符串 (E-05)
如何在没有 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
How to convert double to string without the power to 10 representation (E-05)
double value = 0.000099999999833333343;
string text = value.ToString();
Console.WriteLine(text); // 9,99999998333333E-05
I'd like the string text to be 0.000099999999833333343 (or nearly that, I'm not doing rocket science:)
I've tried the following variants
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
Doing tostring N20 or format F20 seems closest to what I want, but I do end up with a lot of trailing zeros, is there a clever way to avoid this? I'd like to get as close to the double representation as possible 0.000099999999833333343
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
将 String.Format() 与 格式说明符。我想你想要 {0:F20} 左右。
Use String.Format() with the format specifier. I think you want {0:F20} or so.
怎么样
How about
您不需要
string.Format()
。只需将正确的 格式字符串 放入现有的.ToString 中即可()
方法。像“N”这样的东西应该可以。You don't need
string.Format()
. Just put the right format string in the existing.ToString()
method. Something like "N" should do.将
string.Format
与适当的格式说明符结合使用。这篇博文有很多示例: http://blogs .msdn.com/kathykam/archive/2006/03/29/564426.aspx
Use
string.Format
with an appropriate format specifier.This blog post has a lot of examples: http://blogs.msdn.com/kathykam/archive/2006/03/29/564426.aspx