使用设置的最大精度格式化十进制数,但没有不需要的尾随零

co2*_*f2e 4 .net c# formatting decimal

我使用以下代码来格式化小数

return string.Format(CultureInfo.CreateSpecificCulture("nb-NO"), "{0:N3}", decVal);
Run Code Online (Sandbox Code Playgroud)

如果decVal不包含小数,我不想显示小数点,但我想显示没有零的正确格式的数字,如何执行此操作?

Eug*_*kal 9

您可以使用自定义数字格式,如:

return string.Format(CultureInfo.CreateSpecificCulture("nb-NO"), "{0:0.###}", decVal);
Run Code Online (Sandbox Code Playgroud)

您可能希望阅读有关标准数字格式自定义数字格式的信息

编辑:

要处理数以千计的分隔符,您可以使用:

return string.Format(CultureInfo.CreateSpecificCulture("nb-NO"), "{0:#,0.###}", decVal);
Run Code Online (Sandbox Code Playgroud)

但是,要处理某些特定情况,您最好实现类似于此SO线程中描述的格式.

PS:谢谢@Luaan(0.###);

  • 我会改用`0.###`.你通常不想隐藏零:) (2认同)