数字格式化一个类

时间:2013-03-06 14:17:01

标签: c# .net razor

我有一个类从数据库中获取数据并将其存储为字符串。

sAnswer可以是任何数据类型,通常是int。当它是一个int时,我试图将其格式化为逗号分隔符。 (1000000 - > 1,000,000)我该怎么做?

使用像Format这样的var val = string.Format("{0:n0}", sAnswer);无效。

2 个答案:

答案 0 :(得分:3)

将非字符串的值转换为字符串时会发生格式化。您不能将格式应用于已经是字符串的值。您必须暂时将string转换回int

string val = String.Format("{0:n0}", Int32.Parse(sAnswer));

您可以通过使用Int32.Parse常量的按位组合来影响NumberStyles尝试转换的方式

string val = String.Format("{0:n0}", Int32.Parse(sAnswer,
                                                 NumberStyles.AllowLeadingWhite |
                                                 NumberStyles.AllowTrailingWhite|
                                                 NumberStyles.AllowExponent));

或者只需使用NumberStyles.Any枚举常量,即可获得最大的灵活性。如果sAnswer可以包含无效条目(例如空字符串),请执行安全转换

string val;
int i;
if (Int32.TryParse(sAnswer, out i)) {
    val = String.Format("{0:N0}", i);
} else {
    val = ""; // Assign a default value here
}

答案 1 :(得分:2)

这对你有用吗<​​/ p>

int answerInt;
if (int.TryParse(sAnswer, out answerInt))
{
    sAnswer = answerInt.ToString("#,0", CultureInfo.InvariantCulture)
}