我有一个包含数字的字符串,我希望以这种数字格式显示此字符串:#,##0
所以我尝试添加到这个字符串.ToString("#,##0")
,但编译器说
最佳重载方法匹配 'string.ToString(System.IFormatProvider)'有一些无效的参数。
任何想法如何在不首先将此字符串转换为int
的情况下执行此操作?
答案 0 :(得分:1)
当您只需要格式化单个数字时,如整数或长整数。在这种情况下,您不需要使用string.Format.You只能使用ToString虚方法。这减少了一些开销。但是你不能使用ToString直接格式化字符串。
答案 1 :(得分:0)
除非您想手动处理字符串,否则我认为不可能。如果您尝试String.Format("{0:#,##0}", "1000000")
,则输出为1000000
。对我来说,这是有道理的。虽然你可以说“这个字符串一直包含数字”,但这并不是对语言正常做出的安全假设。
你最好的办法是做一些事情:
String.Format("{0:#,##0}", int.Parse(input));
如果你确定它总是一个可转换的整数。
答案 2 :(得分:0)
请先将字符串输入转换为整数,然后尝试格式化字符串。请参阅以下示例:
string test = "12345";
Console.WriteLine("{0}", int.Parse(test).ToString("#,##0"));