String.Format vs ToString并使用InvariantCulture
我在这里有点困惑。
我该怎么用
Console.WriteLine((val/1085).ToString("N")); VS Console.WriteLine(String.Format("{0:N}", (val/1085)));
另外我如何适应InvariantCulture? 任何最好的做法:)?
其实我更喜欢第三种forms:
Console.WriteLine("{0:N}", val / 1085);
Console.WriteLine
可以为你做String.Format
。
Console.WriteLine
不允许您提供文化。 如果这是你想要的,你仍然必须使用String.Format
。 如:
String.Format(CultureInfo.InvariantCulture, "{0:N}", 123456789);
我建议不要使用它,因为国际用户在阅读时会遇到问题。 对我来说123,456,789.00
看起来很奇怪。
对于格式化+文化,我更喜欢:
.ToString("####0.00",CultureInfo.InvariantCulture)
要么
.ToString("N",CultureInfo.InvariantCulture)
在日期时间,可以同时使用它们。 我更喜欢使用并看到第一个解决方案(当然缺少括号)。
当某些字符串与某些参数有间隙时,String.Format会更有用。 然后它是一种杀手级方法,它可以很好地帮助您组织代码。