C#格式为千分隔符

本文关键字:分隔符 格式 | 更新日期: 2023-09-27 18:24:16

我正在尝试将用户输入格式化为千分隔符格式。我试过这里的代码,但它不断破坏应用程序:

Amt.Text = String.Format("{0:0,0.00}", Convert.ToDouble(Amt));

因此,当用户输入3566412时,它需要自动转换为3,566,412

C#格式为千分隔符

您正试图将控件(名为Amt)转换为double,这是个坏主意,因为您想要转换控件(Amt.Text)的文本。我建议使用decimal,因为这更精确,不会导致浮点问题:

Amt.Text = String.Format("{0:0,0.00}", Convert.ToDecimal(Amt.Text));

另一件需要考虑的事情是使用一个可以屏蔽自己的控件,这样你就不需要每次都自己替换文本。

您可能想在MSDN 上查看标准数字格式字符串

然后你可以做一些类似的事情

Amt.Text = inputnumber.ToString("N");

将3566412格式化为3566412.0

如果你想直接从文本框中获取它,你可以这样做,在设置文本之前检查文本是否可以被解析

double result = 0;
if (double.TryParse(Amt.Text, out result)
{
    Amt.Text = result.ToString("N");
}