使用Thousand的Separator

时间:2015-10-01 13:47:15

标签: c# winforms

使用千位分隔符将十进制分析为字符串的简便方法。

例如:

我从数据库中获取小数点为100000000.00,字段类型为decimal(18,2),我的表单中有一个名为TextBox的{​​{1}}。

然后

我希望将"payTxt"解析为100000000.00以填充100.000.000,00

我不知道为什么我每次都设置"payTxt"

它变为"payTxt.Text = "100000000.00" "

3 个答案:

答案 0 :(得分:0)

payTxt.Text = YourVariable.ToString("N2");

答案 1 :(得分:0)

最好使用NumericUpDown控件,ThousandSeparator设置为true,DecimalPlaces设置为2,Maximum设置为您需要的值:

这是设置值的结果:1234567.89

enter image description here

这样:

  • 即使输入数据,也会显示千位分隔符和小数点。
  • 您可以设置最小和最大允许值
  • 用户只能输入有效的数字值
  • 您可以在用户点击箭头或使用箭头键时设置增量。

你应该知道的另一件事是String.Format()和ToString()方法基于Culture工作,例如:

//Shows value based on your Thread.CurrentThread.CurrentCulture
MessageBox.Show(String.Format("{0:N2}", 123456.78));

//Shows 123,456.78
MessageBox.Show(String.Format(CultureInfo.GetCultureInfo("en"), "{0:N2}", 123456.78));

//Shows 123,456/78
MessageBox.Show(String.Format(CultureInfo.GetCultureInfo("fa"), "{0:N2}", 123456.78));

//Shows result based on your Thread.CurrentThread.CurrentCulture
MessageBox.Show((123456.78).ToString("N2"));

//Shows 123,456.78
MessageBox.Show((123456.78).ToString("N2", CultureInfo.GetCultureInfo("en")));

//Shows 123,456/78
MessageBox.Show((123456.78).ToString("N2", CultureInfo.GetCultureInfo("fa")));

答案 2 :(得分:0)

获得100.000.000,00尝试以下内容:

Decimal dec = 100000000.00M;
CultureInfo ci = new CultureInfo("el-GR"); 
payTxt.Text = dec.ToString("0,0.00", ci);

了解更多信息请查看以下链接: Custom Numeric Format Strings

“el-GR”实际上是希腊文化信息,大多数其他文化将显示千位数分隔符的逗号。