将逗号千位分隔符添加到十进制(.net)

将逗号千位分隔符添加到十进制(.net),.net,formatting,string-formatting,number-formatting,.net,Formatting,String Formatting,Number Formatting,我有一个十进制数,比如1234.500 我想将其显示为1234.5 我当前正在将其转换为double以删除尾随的“0” string.Format(“{0:0,0}”,1234.500)删除小数点,其他格式选项似乎使用两位小数 有人能提供见解吗?您应该使用自定义格式,如,##0.00 string s = string.Format("{0:#,##0.00}", xx); 当xx=1234.5M时将产生1234.50 忘记转换成双倍的,,那真的没用。你试过吗 String.Format

我有一个十进制数,比如1234.500

我想将其显示为1234.5

我当前正在将其转换为double以删除尾随的“0”

string.Format(“{0:0,0}”,1234.500)
删除小数点,其他格式选项似乎使用两位小数


有人能提供见解吗?

您应该使用自定义格式,如
,##0.00

string s = string.Format("{0:#,##0.00}", xx);
当xx=1234.5M时将产生
1234.50
忘记转换成双倍的
,那真的没用。

你试过吗

   String.Format("{0:0,0.00}", 1234.560);
另一种选择:

decimal d = 1234.56m;
string s = d.ToString("N");    // 1,234.56

您是否知道.NET内置支持根据应用程序每个用户的区域设置正确格式化数字?最好利用用户自己的区域设置(NET framework已经知道所有正确的设置)

但是,如果要将应用程序修复为在特定区域设置中格式化数字,您仍然可以选择特定的区域设置,并强制.NET将其用作所有格式化(而不仅仅是数字)的基础:

然后

Thread.CurrentThread.CurrentUICulture = us;
或者只是

Console.WriteLine(d.ToString("c", us));
您应该知道,在英国和美国使用逗号作为千位分隔符是合适的,但在其他国家不应该使用逗号来显示千位

“125在美国显示为1025 在瑞典,千位分隔符是一个空格“

致力于这个主题,他们称之为“全球化”(也就是说,如果你需要寻找更多细节,这是一个很好的搜索词)。该页面描述了如何使用磅符号作为数字占位符来删除尾随的零(正如Henk Holterman在之前的评论中所建议的)

另请参见。

试试这个

Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
        Try
            TextBox1.Text = Format(CInt(TextBox1.Text), "#,#")
            TextBox1.SelectionStart = TextBox1.Text.Length
        Catch ex As Exception

        End Try

End Sub
试试这个:

string myNumber = string.Format("{0:#,0.00}", 1234.500);

(我在RDLC报告中看到过这一点)

Edit,只是为了澄清1234.560,我希望1234.56您想将其显示为1234.*5**对吗?编辑帖子以反映这一点。您想使用本地系统设置还是强制应用程序以这种方式格式化?正则表达式与此有什么关系?不要从十进制字符串中删除尾随的零-尝试字符串。格式化(“{0:0,0.00}”,1234.5)不要任何尾随的零,然后删除1个或多个零:#,#35; 0。或者让它们可选:#,###0。#此外,根据IEEE标准,decimal应该格式化为字符串(除非提供其他格式提供程序),小数点后显示/保留零。这是否也适用于不同的区域性/区域设置?@Califf-当然可以。查看重载列表。
string myNumber = string.Format("{0:#,0.00}", 1234.500);