You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编写C#格式字符串:整数无小数显示,小数强制保留两位含末尾零?

解决方案

C#没有单一的标准格式字符串能直接实现该需求,但可以通过条件判断+双格式组合达成目标:

核心逻辑是先判断数值是否为整数(小数部分为0),再分别应用对应格式:

  • 若为整数,使用仅显示整数的格式(如# ###0或N0);
  • 若含有效小数部分,使用强制显示两位小数的格式(如# ###0.00或N2)。

示例代码

针对double类型:

double value = 123.400;
string displayText = value % 1 == 0 ? value.ToString("# ###0") : value.ToString("# ###0.00");

针对精度更高的decimal类型(更适合价格场景):

decimal value = 123.400m;
string displayText = decimal.Remainder(value, 1) == 0 ? value.ToString("# ###0") : value.ToString("# ###0.00");

场景验证

输入值输出结果
0.0000
123.000123
123.456123.46
123.400123.40

批量场景优化

如果是表格批量处理,可封装成扩展方法复用:

public static class NumericExtensions
{
    public static string ToSmartPriceString(this double number)
    {
        return number % 1 == 0 ? number.ToString("# ###0") : number.ToString("# ###0.00");
    }

    public static string ToSmartPriceString(this decimal number)
    {
        return decimal.Remainder(number, 1) == 0 ? number.ToString("# ###0") : number.ToString("# ###0.00");
    }
}

调用时直接使用value.ToSmartPriceString()即可。

内容的提问来源于stack exchange,提问作者pepr

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 08:52:16