我有,
double d = 0.005;
d = d/100;
string str = Convert.ToString(d);
output of str = 5E-05
但我需要输出为0.00005 转换为字符串0.00005成为5E-05。
我该如何解决?
答案 0 :(得分:1)
您需要一个IFormatProvider:
http://www.csharp-examples.net/iformatprovider-numbers/
http://msdn.microsoft.com/en-us/library/7tdhaxxa.aspx
编辑:上面的海报为您提供了更多详细信息。
using System;
namespace test1{
class MainClass {
public static void Main (string[] args) {
double d = 0.005;
d = d/100;
string str = String.Format("{0:0.#####}",d);
Console.WriteLine ("The double converted to String: "+str);
}
}
}
这应该编译并显示你想要的内容。
它不能比这更清楚
编辑: 有关更具体的示例,请查看此处:`
`
答案 1 :(得分:1)
您想指定用于将double转换为字符串的格式。 Double.ToString
不允许您这样做(它使用科学记数法),因此您应该使用String.Format
。
这是您的代码,已更新:
string str = String.Format("{0:0.#####}", 0.00005);
实际上,Double.ToString实际上使用了String.Format。有关详情,请参阅此链接:MSDN docs about Double.ToString
有关String.Format
的更多示例,请参阅以下链接:
Examples of using String.Format
答案 2 :(得分:0)
我找到了解决方案:
string str = d.ToString("F99").TrimEnd("0".ToCharArray());
工作正常。但究竟这是做什么我不知道。这适用于动态双值。
对你们两个人的回答。