格式化c#中的数字

时间:2016-08-04 09:02:38

标签: c# .net string formatting cultureinfo

我想用逗号分隔一个数字。我已经尝试了很多方法来做到这一点。但没有奏效。

它已经转换为字符串,现在我想格式化“tot”。

GetData getData = new GetData();
string tot = Convert.ToString(getData.Total_Extra(month));
string totVal = (tot).ToString("N",new CultureInfo("en-US"));
LB2.Text = tot.ToString();

1 个答案:

答案 0 :(得分:2)

您可以将tot字符串转换为数字值,然后使用string.Format获取所需的格式:

string tot = "19950000";
string output = string.Format("{0:n2}", Convert.ToInt32(tot));
Debug.WriteLine(output); //19,950,000.00 on my machine

或者:

string output2 = Convert.ToInt32(tot).ToString("n2");

这些都是特定于文化的,因此可能会在不同的用户计算机上显示不同(例如,印度文化会显示1,99,50,000.00)。

如果您想强制三位数的逗号分组,那么您可以指定要使用的文化:

string output2 = Convert.ToInt32(tot).ToString("n2", CultureInfo.CreateSpecificCulture("en-GB"));
//19,950,000.00 on any machine

听起来tot可能不是数字值,所以在尝试格式化之前应该检查一下:

string tot = "19950000";
int totInt;
if (Int32.TryParse(tot, out totInt))
{
    string output = totInt.ToString("n2", CultureInfo.CreateSpecificCulture("en-GB"));
    MessageBox.Show(output);
}
else
{
    MessageBox.Show("tot could not be parsed to an Int32");
}