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

时间:2012-12-12 07:28:12

标签: c# string

我有一个double,我想将其更改为字符串,如下所示:

double value;
string myString = value.toString();

当值是点后少于4位的数字时,它可以正常工作。 例如, 如果value为0,myString将为0。 如果值为0.01,myString将为0.01。

但是如果值在点之后有4位或更多位数,则myString是使用浮点创建的(例如,1E-05)。

我希望myString以0.0000000X的格式创建,用于点之后的任意位数,并且永远不要使用1E-0X方法。 我还想让myString保持尽可能短,例如当值为0时,我希望myString为0(而不是0.000000)。

我该怎么办? 谢谢

3 个答案:

答案 0 :(得分:4)

我不确定是否有标准数字格式字符串可以满足您的需求,但您可以使用自定义字符串:

double d = 0.0000003;
Console.WriteLine(d.ToString("0.#################"));

我不相信会处理超出我指定范围的有效数字的值。例如,扩展哈希数不会帮助使用3e-20等数字。这对你来说有问题吗?

请注意,因为您使用的是double而不是decimal,所以在算术后的某些情况下您可能会感到意外...如果您尝试保留一个精确数字所在的值非常重要的是,您应该使用decimal代替。

答案 1 :(得分:0)

使用接受格式字符串作为参数的double.ToString overloads之一。

查看standard numeric format stringscustom numeric format strings上的信息,了解如何指定所需的格式。

答案 2 :(得分:-1)

msdn page for Double.ToString()解释得非常好。

string myString = value.ToString("R");

可以胜任。