如何转换双串没有权力代表10(E-05)

如何转换双串没有权力代表10(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或格式F20似乎最接近我想要的,但我不结了很多尾随零的,是有一个聪明的办法,以避免这种情况? 我想获得尽可能靠近双重代表尽可能0.000099999999833333343

--------------解决方案-------------

使用的String.Format()的格式说明。 我想你想要{0:F20}左右。

string formatted = String.Format("{0:F20}", value);

你不需要string.Format() 只要把现有正确的格式字符串.ToString()方法。 类似“N”应该做的。

怎么样

Convert.ToDecimal(doubleValue).ToString()

使用string.Format用适当的格式说明。

这个博客帖子有很多例子:http://blogs.msdn.com/kathykam/archive/2006/03/29/564426.aspx

分类:C# 时间:2015-03-15 人气:0
本文关键词: C#的toString
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.298 (s). 10 q(s)