我有一个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)。
我该怎么办? 谢谢
答案 0 :(得分:4)
我不确定是否有标准数字格式字符串可以满足您的需求,但您可以使用自定义字符串:
double d = 0.0000003;
Console.WriteLine(d.ToString("0.#################"));
我不相信会处理超出我指定范围的有效数字的值。例如,扩展哈希数不会帮助使用3e-20等数字。这对你来说有问题吗?
请注意,因为您使用的是double
而不是decimal
,所以在算术后的某些情况下您可能会感到意外...如果您尝试保留一个精确数字所在的值非常重要的是,您应该使用decimal
代替。
答案 1 :(得分:0)
使用接受格式字符串作为参数的double.ToString
overloads之一。
查看standard numeric format strings和custom numeric format strings上的信息,了解如何指定所需的格式。
答案 2 :(得分:-1)