Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将double更改为string后的字符串格式_C#_String - Fatal编程技术网

C# 将double更改为string后的字符串格式

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,我想把它改成一个字符串,如下所示:

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()
后更改字符串,还是希望从一开始就正确?