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

2023-09-03 12:57:31 作者:泪湿了眼

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

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

以上一直运行良好,直到最近才以以下形式正确显示数字:

 123,456
excel表格中数字用逗号隔开,如何筛选我想要的两个数字,如图中我想要同时筛选23跟31,却显示搜索不到

最近,千位分隔符不知何故变成了句点"。数字显示如下:

 123.456

我的第一个想法是区域性设置不正确,但我在当前线程显示这个数字时检查了它的默认区域性,并将其正确设置为"en-US"。你知道为什么这会显示句点而不是逗号吗?

谢谢,

推荐答案

我的第一个想法是区域性设置不正确,但我在当前线程显示这个数字时检查了它的默认区域性,并将其正确设置为"en-US"。你知道为什么这会显示句点而不是逗号吗?

区域性不同于"en-US",或者您已在控制面板的区域设置中自定义了数字格式。

在不指定区域性的情况下执行intNumber.ToString("N0")时,使用的区域性为Thread.CurrentThread.CurrentCulture。也许您检查了Thread.CurrentThread.CurrentUICulture,它基于Windows的语言版本并且不用于格式化?

如果当前区域性确实是"en-US",则应转到控制面板->时钟、语言和区域->更改日期、时间或数字格式,并确保数字分组符号是逗号而不是点。控制面板中显示的符号是在设置数字格式时未指定CultureInfo时使用的符号。

您有几个选项:

格式化时强制区域性,例如intNumber.ToString("N0", CultureInfo.InvariantCulture)以根据需要获取逗号。

实现用户应该能够控制格式。这就是您的代码当前执行的操作。

/li>
 
精彩推荐