C# 将double更改为string后的字符串格式
我有一个double,我想把它改成一个字符串,如下所示:C# 将double更改为string后的字符串格式,c#,string,C#,String,我有一个double,我想把它改成一个字符串,如下所示: double value; string myString = value.toString(); 当值是一个点后少于4位的数字时,它可以正常工作。 例如 如果值为0,myString将为0。 如果值为0.01,myString将为0.01 但在值后面有4个或更多数字的情况下,myString是用浮点创建的(例如,1E-05) 我希望myString以0.0000000X的格式创建,用于点后的任意位数,并且永远不要使用1E-0X方法。
double value;
string myString = value.toString();
当值是一个点后少于4位的数字时,它可以正常工作。
例如
如果值为0,myString将为0。
如果值为0.01,myString将为0.01
但在值后面有4个或更多数字的情况下,myString是用浮点创建的(例如,1E-05)
我希望myString以0.0000000X的格式创建,用于点后的任意位数,并且永远不要使用1E-0X方法。
我还希望myString尽可能短,对于exmaple,当值为0时,我希望myString为0(而不是0.000000)
我怎么做?
谢谢使用其中一个接受格式字符串作为参数的
查看和上的信息,了解有关指定所需格式的信息。我不确定是否有标准数字格式字符串可以满足您的要求,但您可以使用自定义字符串:
double d = 0.0000003;
Console.WriteLine(d.ToString("0.#################"));
我不相信这会处理那些最终有超过我指定的有效数字的值。例如,扩展散列数对3e-20这样的数字没有帮助。这对你来说是个问题吗
请注意,因为您使用的是double
而不是decimal
,所以在某些情况下,在算术运算之后,您可能会得到惊喜。。。如果您试图保留一个精确数字非常重要的值,您可能应该使用十进制
。很好地解释了这一点
string myString = value.ToString("R");
你是说ToString()
?您的意思是希望在调用toString()
后更改字符串,还是希望从一开始就正确?