为什么Double to string会丢弃小数点后的零,如何保留零?

时间:2014-04-19 12:29:55

标签: c#

在方案1中,字符串转换完全转换。即:1.25(双)等于1.25(字符串) 但在方案2中,我的输入double是1.0但转换后的字符串是1。 为什么会这样?以及如何在字符串转换期间保留十进制后的零?

Scenario 1:
double input1 = 1.25;
string output1 = input1.ToString("0.################");  // output1 = "1.25"

Scenario 2:
double input2 = 1.0;
string output2 = input2.ToString("0.################");  // output2 = "1"   

我需要做什么才能将输出2作为" 1.0"而不是" 1"。??提前谢谢。

2 个答案:

答案 0 :(得分:4)

字符串格式小数点后的哈希标记#表示该值是可选的。如果您希望获得输出1.0,则需要以下内容:

Scenario 2:
double input2 = 1.0;
string output2 = input2.ToString("0.0###############");  // output2 = "1.0"

答案 1 :(得分:2)

如果您使用0代替#,则会保留零,而不是在它们无关紧要时删除。

double input2 = 1.0;
string output2 = input2.ToString("0.0###############");  // output2 = "1.0"

可以在MSDN上找到格式化数字的完整文档:http://msdn.microsoft.com/en-us/library/0c899ak8%28v=vs.110%29.aspx