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

如何将字符串转换为带逗号分隔的十进制格式?附C#实现示例

如何在C#中将数字字符串转换为带逗号分隔的十进制格式?

要实现把数字字符串转换成带千位逗号分隔的十进制格式(比如把12345678.234变成12,345,678.234),我这里有个实用的C#实现方案,用正则配合格式化就能搞定:

using System;
using System.Text.RegularExpressions;

public class Program 
{ 
    public static void Main() 
    { 
        string strRegex = @"(\d+)"; 
        Regex myRegex = new Regex(strRegex, RegexOptions.None); 
        string inputStr = @"12345678.234"; 
        
        foreach(Match match in myRegex.Matches(inputStr)) 
        { 
            inputStr = inputStr.Replace(match.Value, 
                string.Format("{0:n}", decimal.Parse(match.Value, System.Globalization.NumberStyles.Any))); 
        } 
        
        Console.WriteLine(inputStr); // 输出结果: 12,345,678.234
    } 
}

代码工作原理:

  • 正则表达式(\d+)会匹配字符串里的所有连续数字序列,这里会分别命中整数部分12345678和小数部分234
  • 对每个匹配到的数字片段,先解析为decimal类型,再用{0:n}格式字符串进行格式化——这个格式会自动为整数部分添加千位分隔符
  • 最后将原字符串中的原始数字片段替换成格式化后的结果,得到符合要求的带逗号分隔的字符串

如果你的输入场景更复杂(比如包含负数、不同地区的小数分隔符等),可以调整正则表达式或者解析时的NumberStyles参数来适配,但针对示例中的场景,这段代码已经可以完美完成任务。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 15:39:10