代码之家  ›  专栏  ›  技术社区  ›  thethanghn

字符串。格式是否考虑区域设置?

  •  6
  • thethanghn  · 技术社区  · 17 年前

    string.format的工作方式有两种: 如果我们使用内置格式,如C、N、P…。它将考虑区域设置? 如果我们使用自定义格式代码,如,0.000,它将不考虑区域设置?

    在我的代码中,我使用这样的方法

    string.format(“0:0000”,value);

    因为我的国家使用逗号作为十进制分隔符

    但结果仍然是:1234.500好像它把点当作十进制分隔符。

    请帮助!

    2 回复  |  直到 13 年前
        1
  •  17
  •   KwiZ    13 年前

    你想用 CultureInfo :

    value.ToString("N", new CultureInfo("vn-VN"));
    

    使用 String.Format :

    String.Format(new CultureInfo("vi-VN"), "N", value);
    

    既然你在河内(从侧面看),我就用了越南的代码,那就是 vn-VN .

        2
  •  3
  •   Robert Paulson    17 年前

    这是可行的。

    IFormatProvider iFormatProvider = new System.Globalization.CultureInfo("es-ES");
    
    string s = value.ToString("#,##0.000", iFormatProvider);
    
    string s2 = string.Format(iFormatProvider, "{0:#,##0.000}", val)
    

    请注意 , 和 . 正在使用“标准”的美国风格,但是 .ToString() 和 string.Format() 使用格式提供程序可以做正确的事情。