Iva*_*kin 0 .net c# string-formatting
为什么0.0.ToString(".####")返回空字符串而不是0?我应该使用什么格式的字符串来正确输出?
要始终显示1s位置的数字,则需要在该数字的字符串格式说明符中指定零.请参阅以下内容:
// outputs "0"
0.0.ToString("0.####")
Run Code Online (Sandbox Code Playgroud)
如果要显示额外的小数位,即使它们为零,那么您也可以使用零来执行此操作:
// outputs "5.1000"
(5.1).ToString("0.0000")
Run Code Online (Sandbox Code Playgroud)
有关更多信息,请参阅: 自定义数字格式字符串
如果你只想显示数字零的1位置,那么这样做:
String text = (number == 0) ? "0" : number.ToString(".####");
Run Code Online (Sandbox Code Playgroud)
想想你问-你问任何需要的数字之前小数点以及多达4个可选显著数字后的小数点.
由于0.0具有无显著数字之前或小数点后,将没有返回值.
为了给你正确的格式字符串,我们需要在以下每种情况下获得预期的输出:
请注意,您可以使用节分隔符明确说明如何格式化正数,负数和0:
0.0.ToString(".####;-.####;0") // returns "0"
Run Code Online (Sandbox Code Playgroud)
使用节分隔符(与显式检查0相比)的好处是,如果格式化的字符串等于0,它将使用"0"格式说明符.
例如,
(-0.0000001).ToString(".####;-.####;0")
Run Code Online (Sandbox Code Playgroud)
将返回,"0"因为根据您的格式规范,小的负数将四舍五入为四位小数.