C# 对电话号码的格式功能很好奇
更新(已解决):C# 对电话号码的格式功能很好奇,c#,C#,更新(已解决): 我使用以下代码以各种格式在循环中格式化电话号码: string PhoneNumber = "9998675309" String.Format("{0:" + formatString + "}", Convert.ToDouble(PhoneNumber)) 我需要以两种稍微不同的方式格式化电话号码。一个像我预料的那样出来了,另一个没有 所以,出于好奇,我决定做一个快速的控制台应用程序,看看我能想到的所有不同的电话号码格式。结果如下: 我的问题是:为什么其中一些人以他
我使用以下代码以各种格式在循环中格式化电话号码:
string PhoneNumber = "9998675309"
String.Format("{0:" + formatString + "}", Convert.ToDouble(PhoneNumber))
我需要以两种稍微不同的方式格式化电话号码。一个像我预料的那样出来了,另一个没有
所以,出于好奇,我决定做一个快速的控制台应用程序,看看我能想到的所有不同的电话号码格式。结果如下:
我的问题是:为什么其中一些人以他们看起来应该的方式出现,而另一些人却没有?其中一些字符需要转义字符吗?格式字符串中的“
具有特殊含义。确定小数分隔符在结果字符串中的位置。因此,您必须退出“
:
在格式字符串中使用“
的一些示例:
// 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"))
这是一件小事,但你真的应该在格式化之前使用
long
而不是double
来存储数字。如果我也做一些验证来确保它是1)正好10个字符长,2)只包含数字,这两种方法都不起作用吗?我是在一个很酷的点网小提琴上做的,效果很好!很高兴知道,谢谢。PS-值得注意。在我发帖之前,我尝试了一个快速测试,用一个反斜杠而不是你回答的两个反斜杠来逃避句点。也许这会帮助其他人。
// 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"))