【问题标题】:C# - Force String.Format to use decimals and NEVER commasC# - 强制 String.Format 使用小数和从不逗号
【发布时间】:2013-02-19 00:18:40
【问题描述】:

基本上我意识到我的应用程序使用的是逗号而不是小数,我从不想允许这样做。有谁知道我该如何纠正?我通过谷歌找不到一件事就是强制小数,这都是关于强制逗号。

         return String.Format("{0}f, {1}f, {2}f, {3}f, {4}f, {5}f, {6}f, {7}f, {8}f, {9}f, {10}f, {11}f, {12}f, {13}f, {14}f, {15}f", M.M11, M.M12, M.M13, M.M14, M.M21, M.M22, M.M23, M.M24, M.M31, M.M32, M.M33, M.M34, M.OffsetX, M.OffsetY, M.OffsetZ, M.M44);

【问题讨论】:

  • 你能举个例子说明什么时候使用逗号,应该使用小数吗?
  • 如果有人在英国启动我的申请,1.5654654 将是 1,5654654
  • 如果您不允许这样做,它将使您的英国用户感到困惑。你确定这样会好吗?

标签: c# string.format


【解决方案1】:

您可以使用其他重载:

return String.Format(
    CultureInfo.InvariantCulture // <<== That's the magic
,   "{0}f, {1}f, {2}f, {3}f, {4}f, {5}f, {6}f, {7}f, {8}f, {9}f, {10}f, {11}f, {12}f, {13}f, {14}f, {15}f"
,   M.M11, M.M12, M.M13, M.M14, M.M21, M.M22, M.M23, M.M24, M.M31, M.M32, M.M33, M.M34, M.OffsetX, M.OffsetY, M.OffsetZ, M.M44
);

这种调用方式可确保将不变的文化作为格式提供者传递给String.Format,确保您获得数字的圆点、货币符号的美元、月份和日期的英文名称等等.

【讨论】:

    【解决方案2】:

    尝试将 String.Format 函数的文化设置为美国英语:

    String.Format(new CultureInfo("en-US"), "{0}f, {1}f, {2}f", etc)
    

    【讨论】:

      猜你喜欢
      • 2016-06-18
      • 2011-02-02
      • 2013-10-29
      • 1970-01-01
      • 2016-12-24
      • 1970-01-01
      • 1970-01-01
      • 2010-09-11
      相关资源
      最近更新 更多