更新(已解决):https://dotnetfiddle.net/6GEJyO
我使用以下代码在各种格式的循环中格式化电话号码:
string PhoneNumber = "9998675309"
String.Format("{0:" + formatString + "}", Convert.ToDouble(PhoneNumber))
我需要以两种稍微不同的方式格式化电话号码。一个出现了我的预期而另一个没有。
所以,好奇,我决定做一个快速的控制台应用程序,看看我能想到的所有不同的电话号码格式化可能性。结果如下:
我的问题是:为什么其中一些出现的格式是他们看起来应该的样子而其他人没有?是否有某些需要的转义字符?
答案 0 :(得分:5)
"."
在格式字符串中具有特殊含义。确定结果字符串中小数分隔符的位置。所以你必须逃避"."
:
string formatString = "###-###\\.####";
在格式字符串中使用"."
的一些示例:
// the result is "3.40"
(3.4).ToString("#.00", CultureInfo.GetCultureInfo("en-US"))
// the result is "3,142"
(3.141592).ToString("#.000", CultureInfo.GetCultureInfo("nl-NL"))