我有一个从数据库中获取数据并将其存储为字符串的类。
sAnswer
可以是任何数据类型,通常是 int。当它是 int 时,我试图将其格式化为具有逗号分隔符。(1000000 -> 1,000,000)我该怎么做?
使用Format
likevar val = string.Format("{0:n0}", sAnswer);
不起作用。
将不是字符串的值转换为字符串时会发生格式化。您不能将格式应用于已经是字符串的值。您将不得不暂时将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
}
这对你有用吗
int answerInt;
if (int.TryParse(sAnswer, out answerInt))
{
sAnswer = answerInt.ToString("#,0", CultureInfo.InvariantCulture)
}