【问题标题】:Print Integer with 2 decimal places in Java在Java中打印带有2位小数的整数
【发布时间】:2012-10-11 00:35:08
【问题描述】:

在我的代码中,我使用整数乘以 100 作为小数(0.1 是 10 等)。你能帮我格式化输出以显示为十进制吗?

【问题讨论】:

    标签: java format number-formatting output


    【解决方案1】:
    int x = 100;
    DecimalFormat df = new DecimalFormat("#.00"); // Set your desired format here.
    System.out.println(df.format(x/100.0));
    

    【讨论】:

    • 这不是 100 的有效格式,它应该按照 OP 的预期打印 1.00,而它打印 100.00。使用这个没有意义。
    • @AmitD 我想当我发布这个答案时,OP 的问题并不清楚。现在我看到了 OP 的期望。我编辑了我的答案,做了一个非常小的改动。 (x 变成 x/100.0)
    • 嗨@BlueBullet 你能详细说明OP 的含义吗,因为我不明白它代表什么? :)
    • @Wolvorin hi wolvorin bro =) 我过去和你一样是新手。现在我知道并使用它。 OP 的意思是“原始海报”,或者说是帖子的所有者。
    • 感谢好友(@BlueBullet) 分享知识:)
    【解决方案2】:

    我会说使用0.00 作为格式:

          int myNumber = 10;
          DecimalFormat format = new DecimalFormat("0.00"); 
          System.out.println(format.format(myNumber));
    

    它将打印如下:

          10.00
    

    这里的优势是:

    如果你喜欢:

          double myNumber = .1;
          DecimalFormat format = new DecimalFormat("0.00"); 
          System.out.println(format.format(myNumber));
    

    它会像这样打印:

          0.10
    

    【讨论】:

      【解决方案3】:

      您可以通过除以因子(作为双精度数)来打印编码为整数的十进制数

      int i = 10; // represents 0.10
      System.out.println(i / 100.0);
      

      打印

      0.1
      

      如果您需要始终显示两位小数,您可以使用

      System.out.printf("%.2f", i / 100.0);
      

      【讨论】:

        【解决方案4】:

        基于another answer,使用BigDecimal,这也可以:

        BigDecimal v = BigDecimal.valueOf(10,2);
        System.out.println(v.toString());
        System.out.println(v.toPlainString());
        System.out.println(String.format("%.2f", v));
        System.out.printf("%.2f\n",v);
        

        甚至你的好老 DecimalFormat 也可以与 BigDecimal 一起使用:

        DecimalFormat df = new DecimalFormat("0.00");
        System.out.println(df.format(v));
        

        【讨论】:

          【解决方案5】:

          你可以试试这个:-

          new DecimalFormat("0.00######");
          

          NumberFormat f = NumberFormat.getNumberInstance();
          f.setMinimumFractionDigits(2);
          

          【讨论】:

            【解决方案6】:

            你可以使用int的双重instate。 它为您提供带小数的输出。 然后你可以除以 100。

            【讨论】:

              【解决方案7】:

              你可以使用int的双重instate。 它为您提供带小数的输出。

              如果您希望数字位于点后面。你可以用这个:

              **int number=100;
              double result;
              result=number/(number.length-1);**
              

              希望你能用这个。

              【讨论】:

                猜你喜欢
                • 2011-02-02
                • 2021-05-07
                • 1970-01-01
                • 2018-07-02
                • 1970-01-01
                • 1970-01-01
                • 2015-12-19
                • 1970-01-01
                相关资源
                最近更新 更多