【问题标题】:How to specify scaling down by 100 in custom numeric format string?如何在自定义数字格式字符串中指定缩小 100?
【发布时间】:2012-01-12 17:35:34
【问题描述】:

如何在自定义数字格式字符串中指定缩小100?

我需要将一个数字缩小 100(类似于 ',' 运算符所做的,将其缩小 1000)

我如何做到这一点?

我需要将数字除以 100 而不仅仅是逗号。

如果我有一个数字 123456.78 我需要我的输出为 1234.5678...

【问题讨论】:

  • 你想把1000个数变成1000个
  • 您的意思是要将十进制数字分成 2 个一组吗?
  • 请提供示例输出以帮助解释您的需求。
  • "," 不缩放数字。它添加了千位分隔符。例如,1234567.89d 在美国设置下变为 "1,234,567.89",在德国设置下变为 "1.234.567,89"。数值不变。
  • 听上去好像是想把数字除以100,这和格式化关系不大。也许这个问题可以更清楚。

标签: c# string-formatting number-formatting


【解决方案1】:

写一个简单的方法

   public static string FormatNumberSpecialNumber(double inputString)
   {
       string tempString;
       tempString = string.Format("{0:#.#####}",(inputString / 100));
       return tempString;
   }

用法

var number = FormatNumberSpecialNumber(123456.78);

【讨论】:

    【解决方案2】:

    您在错误的地方执行此操作。您应该在转换为字符串之前执行此操作....

    如果您不使用千位分隔符进行格式化,则可以作弊,只需在字符串中找到小数点并将其向右移动两个字符(假设它不是 0.2345 !)

    虽然脆弱,反直觉,但一定会让你在未来看起来像一个完整的沃利。我会在同行评审中给你一个新的,除非你有一个铸铁的借口。

    【讨论】:

      【解决方案3】:

      第一个 , 不是 C# operator,这是错误的术语。在这种情况下,它只是一个分隔符。

      这是我将用来实现您的示例中指定的效果的代码。

      var number = 123456.78
      var formattedString = (number / 100.0).ToString();
      

      编辑:

      可以使用自定义格式字符串(并且没有除法)来执行此操作,但您需要创建一个没有小数点的自定义文化。我很确定没有这样的文化。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-08-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-08-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多