【问题标题】:Flexible number format in JavaJava中灵活的数字格式
【发布时间】:2011-10-09 11:57:12
【问题描述】:


我有一个问题,如何编写代码,根据标准使用不同的十进制数字格式将双数转换为字符串。
例如
1)如果整数位数 2)如果整数位数>=N:使用科学数字格式0.###E0 我只是想出手动计算整数位数(除以 10)的想法。然后使用 if/else。

还有其他方法吗?

【问题讨论】:

    标签: java number-formatting


    【解决方案1】:

    您可以使用 NumberFormat 类。当然,您必须使用条件来说明您的两种情况。

    【讨论】:

      【解决方案2】:

      虽然DecimalFormat JavDoc 有一个“科学记数法”部分,但这似乎不符合您的要求。也许您可以摆脱 JavaDoc 中描述的“工程符号”?

      如果不是,那么最简单的方法是使用如下两种不同的格式:

      private DecimalFormat df1 = new DecimalFormat("#.###");
      private DecimalFormat df2 = new DecimalFormat("0.###E0");
      
      public String formatDouble(double d) {
          if( Math.abs(d) < 1000 )
              return df1.format(d);
          else
              return df2.format(d);
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2022-01-18
        • 1970-01-01
        • 1970-01-01
        • 2012-02-07
        • 2016-06-23
        • 1970-01-01
        • 2010-11-16
        相关资源
        最近更新 更多