逗号分隔数字的 C# 默认格式

标签 c# number-formatting

我有一个 C# 应用程序,它在文本框中显示一些大数字。我希望它使用逗号作为千位分隔符。我使用以下代码来做到这一点:

 txtNumberDisplay.Text = intNumber.ToString("N0");

上面的代码工作正常,直到最近它以以下形式正确显示数字:

 123,456

最近千位分隔符以某种方式更改为句点“.”数字显示如下:

 123.456

我的第一个想法是文化不知何故设置不正确,但我检查了当前线程在显示此数字时的默认文化,并将其正确设置为“EN-US”。知道为什么这会显示句点而不是逗号吗?

谢谢,

最佳答案

使用字符串格式:

int value = 1234;
string.Format(@"{0:#\,##0}", value); 

//Output will be 1,234

编辑:添加了一个\,

EDIT2:刚刚发现这不适用于 6 位数字(需要两个逗号),所以这是一个解决方法,但必须有更好的解决方案...

        int value = 1234;
        string s = "#";
        for (int i = 0; i < value.ToString().Length / 3; i++) s += @"\,###";

        string output = string.Format(@"{0:" + s + "}", value); 

关于逗号分隔数字的 C# 默认格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20972845/

相关文章:

c# - ASP.Core 中的 .NET 版本

r - 如何读取以逗号作为小数点分隔符的数字?

java - 尝试从文本字段读取格式化的 double 值

java - 为什么 getText() 无法在 Struts 2 中格式化 double 值

c# - 如何为知识库系统构建搜索引擎?

c# - ~ 运算符的功能是什么?

c# - 在 C# 中过滤正则表达式搜索以查找重复匹配项的首选方法是什么

c# - DateTime.Parse 关闭一小时。为什么?

javascript - 如何在 JavaScript 中四舍五入数百万?

Excel 数字格式,仅在必要时显示小数