是否有c#格式说明符省略前导零,除非值为零



换句话说,我希望0.123显示为"。123",但0应该显示为"0"。目前我得到的最好的是

String.Format("{0:.###}", n)

给出"。

如果使用;作为分隔符,则可以指定正、负和零值的格式。string.Format("{0:.###;-.###;0}", n)将在n==0时显示"0",并且将省略正负值的前导零。查看此处的MSDN参考

如果这些都失败了,你可以这样做:

 string s = n == 0 ? "0" : String.Format("{0:.###}", n);

不聪明,但会完成工作:-)

这里是你可以尝试的东西我添加了一个地方,你可以测试代码,并将变量从0更改为.1234来测试

var decNum =.1234;//change to 0 will return 0 change to .1234 will return the correct formatted value
var formatDecil = String.Format("{0:.###}", decNum);
formatDecil = string.IsNullOrEmpty(formatDecil) ? 0.ToString():formatDecil;

最新更新