我有一个类从数据库中获取数据并将其存储为字符串。
sAnswer
可以是任何数据类型,通常是int。当它是一个int时,我试图将其格式化为逗号分隔符。 (1000000 - > 1,000,000)我该怎么做?
使用像Format
这样的var val = string.Format("{0:n0}", sAnswer);
无效。
答案 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)
}