如果我的Object值是例如1.0,则.ToString()返回1而不是1.0。
但是如果值是例如1.5,则.ToString()返回1.5。
为什么在c#中出现这种行为?
注意:在这种情况下,对象是双值。
答案 0 :(得分:3)
它不是“错误的”,它是实际数据类型的默认格式。
如果您希望它始终为1.0,那么您需要将其格式化为。
String.Format("{0:0.0}", myObject);
or
((double)myObject).ToString("0.0");
答案 1 :(得分:2)
为什么1.0会返回1.0而不是说1.00? 1.23也会返回两位小数,对吧?
C#(我的猜测也是大多数其他语言)会打印出小数位,如果它们很重要的话。小数点后的一串零并不重要,它们不会改变数字的值。
答案 2 :(得分:1)
这是因为Double.ToString()默认使用“G”,通用格式,说明符。这意味着数字将转换为最紧凑的形式,包括此规则:
如果需要,结果包含小数点,尾随零 小数点后省略。
答案 3 :(得分:0)
答案 4 :(得分:0)
尝试value.ToString("F1")