0.0.ToString(“.####”) 返回空字符串

本文关键字:返回 字符串 #### ToString | 更新日期: 2023-09-27 18:32:01

为什么0.0.ToString(".####")返回空字符串而不返回0?我应该使用什么格式字符串进行正确的输出?

0.0.ToString(“.####”) 返回空字符串

要始终显示 1s 位置的数字,则需要在该数字的字符串格式说明符中指定一个零。请参阅以下内容:

// outputs "0"
0.0.ToString("0.####")

如果要显示额外的小数位,即使它们是零,也可以使用零来执行此操作:

// outputs "5.1000"
(5.1).ToString("0.0000")

有关详细信息,请参阅:自定义数字格式字符串

如果你只想显示数字零的 1s 位置,那么这样做:

String text = (number == 0) ? "0" : number.ToString(".####");

想想你要问什么 - 你要求小数点没有必需的数字,小数点最多 4 个可选的有效数字。

由于 0.0 在小数点之前或之后没有有效数字,因此它不返回任何内容。

为了给您正确的格式字符串,我们需要在以下每种情况下的预期输出:

  • 数字>= 1
  • 介于 0 和 1 之间的数字(不包括)
  • 0

请注意,您可以使用节分隔符明确说明您希望如何设置正数、负数和 0 的格式:

0.0.ToString(".####;-.####;0")   // returns "0"

使用节分隔符(与显式检查 0 相比)的好处是,如果格式化字符串等效于 0,它将使用"0"格式说明符。

例如

(-0.0000001).ToString(".####;-.####;0")

将返回"0",因为根据您的格式规范,小负数将四舍五入到小数点后四位。