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

如何在C#中将字符串格式的十进制值格式化为指定样式?

如何将Decimal格式化为带千分位且保留两位小数的格式?

你需要的是带千分位分隔符且固定保留两位小数的数字格式,之前使用"N1"只保留了一位小数,导致末尾的0被省略,只需调整格式说明符并确保文化设置正确即可解决。

解决方案

使用"N2"格式说明符,它会自动添加千分位分隔符并强制保留两位小数。同时为了确保千分位用.、小数分隔符用,(匹配你需要的格式),建议显式指定对应的区域文化(比如德语文化de-DE),避免环境默认文化差异导致格式错误。

完整代码示例:

using System.Globalization;

string myDecimalString = "9000000,10";
// 显式指定文化解析带逗号的小数字符串
decimal myDecimal = Convert.ToDecimal(myDecimalString, CultureInfo.GetCultureInfo("de-DE"));

// 用N2格式+指定文化输出,得到9.000.000,10
Console.WriteLine(myDecimal.ToString("N2", CultureInfo.GetCultureInfo("de-DE")));

补充说明

  • N2是标准数字格式字符串:N代表数字格式,后面的2表示固定保留两位小数,无论小数部分是否为0都会显示
  • 如果你的应用运行环境默认文化已经使用.作为千分位、,作为小数分隔符,也可以省略文化参数,但显式指定能让代码更健壮,不受环境影响
  • 也可以用自定义格式字符串实现相同效果:myDecimal.ToString("#.##0,00", CultureInfo.GetCultureInfo("de-DE")),不过N2更简洁通用

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 09:25:03