0

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

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

使用Formatlikevar val = string.Format("{0:n0}", sAnswer);不起作用。

4

2 回答 2

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
}
于 2013-03-06T14:24:11.540 回答
2

这对你有用吗

int answerInt;
if (int.TryParse(sAnswer, out answerInt))
{
    sAnswer = answerInt.ToString("#,0", CultureInfo.InvariantCulture)
}
于 2013-03-06T14:24:27.517 回答