如何在ToString()中转义一个点?

时间:2013-12-19 19:56:13

标签: c# .net

我有一个我要格式化的字符串电话号码:

string PhoneNumber { get; set; }

[..]
long fonenum;

if (Int64.TryParse(PhoneNumber, out fonenum)) {
    if (PhoneNumber.Length <= 9) {
        return fonenum.ToString("#0000.0000");
    }
    else if (PhoneNumber.Length == 10) {
        return fonenum.ToString("(00) 0000.0000");
    }
    [..]
}

但是“。”与小数位混淆并输出一个浮动数字,在我当前的文化中将小数位添加为“,”:

3333-4444 - &gt; 3333,4444

我如何强制将点显示为电话号码分隔符?

当然,我可以添加文化“美国”并得到我想要的东西,但我甚至认为这不是正确的方法。

3 个答案:

答案 0 :(得分:4)

通过添加反斜杠来逃避它:

fonenum.ToString("#0000\\.0000")

上面的反斜杠加倍,因为我使用的是非verbatim字符串文字。

答案 1 :(得分:2)

单引号逃脱:

fonenum.ToString("#0000'.'0000")

答案 2 :(得分:0)

我测试了一点,并找到了另一个:

fonenum.ToString(@"#0000\.0000")

与Jon回答相关(“@”转义为“\”)。