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

C#如何将整数字符串转为带千分位小数点分隔的格式?

在C#中实现千分位分隔(点作为分隔符)的方法

当然有啦!C#自带的格式化工具就能轻松搞定这个需求,不过默认千分位分隔符是逗号,咱们只需要调整成点就行。下面给你两种实用的实现方式:

方法一:利用特定文化的格式设置

德国地区(de-DE)的数字格式刚好是用点作为千分位分隔符,直接用这个文化信息就能快速实现:

// 示例1:处理"123456"
string input1 = "123456";
if (long.TryParse(input1, out long num1))
{
    string result1 = num1.ToString("#,0", new System.Globalization.CultureInfo("de-DE"));
    Console.WriteLine(result1); // 输出:123.456
}

// 示例2:处理"1000000"
string input2 = "1000000";
if (long.TryParse(input2, out long num2))
{
    string result2 = num2.ToString("#,0", new System.Globalization.CultureInfo("de-DE"));
    Console.WriteLine(result2); // 输出:1.000.000
}

方法二:自定义数字格式信息

如果不想依赖特定地区的文化设置,也可以手动指定分隔符,灵活性更高:

string input = "1000000";
if (long.TryParse(input, out long number))
{
    var customFormat = new System.Globalization.NumberFormatInfo();
    customFormat.NumberGroupSeparator = "."; // 设置千分位分隔符为点
    // 小数分隔符这里可以随便设,因为咱们处理的是整数
    customFormat.NumberDecimalSeparator = ",";
    
    string formattedStr = number.ToString("#,0", customFormat);
    Console.WriteLine(formattedStr); // 输出:1.000.000
}

处理超长整数的情况

如果你的输入字符串长度超过了long的范围,可以用BigInteger来处理,格式化逻辑是一样的:

string bigInput = "12345678901234567890";
if (System.Numerics.BigInteger.TryParse(bigInput, out var bigNum))
{
    var formatInfo = new System.Globalization.NumberFormatInfo();
    formatInfo.NumberGroupSeparator = ".";
    
    string bigResult = bigNum.ToString("#,0", formatInfo);
    Console.WriteLine(bigResult); // 输出:12.345.678.901.234.567.890
}

小提醒

记得用TryParse而不是直接Parse哦,这样能避免输入无效整数时抛出异常,让代码更健壮。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 08:13:18