为什么0.0.ToString(".####")
返回空字符串而不返回0
?我应该使用什么格式字符串来正确输出?
问问题
3238 次
2 回答
6
要始终显示 1 位置的数字,您需要在该数字的字符串格式说明符中指定零。请参阅以下内容:
// outputs "0"
0.0.ToString("0.####")
如果你想显示额外的小数位,即使它们是零,那么你也可以使用零来做到这一点:
// outputs "5.1000"
(5.1).ToString("0.0000")
有关更多信息,请参阅: 自定义数字格式字符串
如果您只想显示数字零的 1s 位置.. 然后执行以下操作:
String text = (number == 0) ? "0" : number.ToString(".####");
于 2013-09-18T15:34:42.823 回答
5
想想你在问什么 - 你要求小数点前不需要数字,小数点后最多 4 个可选有效数字。
由于小数点前后没有有效数字,因此它不返回任何0.0
内容。
为了给你正确的格式字符串,我们需要在以下每种情况下的预期输出:
- 一个数字 >= 1
- 0 到 1 之间的数字(不包括)
- 0
请注意,您可以使用节分隔符来明确说明您希望如何格式化正数、负数和 0:
0.0.ToString(".####;-.####;0") // returns "0"
使用节分隔符(与显式检查 0 相比)的好处是,如果格式化字符串等于 0,它将使用“0”格式说明符。
例如,
(-0.0000001).ToString(".####;-.####;0")
将返回"0"
,因为小负数将根据您的格式规范四舍五入为小数点后四位。
于 2013-09-18T15:50:06.287 回答