【问题标题】:Java BigDecimal remove decimal and trailing numbersJava BigDecimal 删除小数和尾随数字
【发布时间】:2010-11-21 23:07:07
【问题描述】:

我是 Java 新手,我尝试使用 BigDecimal(例如 99999999.99)并将其转换为字符串,但没有小数位和尾随数字。另外,我不想在数字中使用逗号,也不需要四舍五入。

我试过了:

Math.Truncate(number)

但不支持 BigDecimal。

有什么想法吗?

非常感谢。

【问题讨论】:

    标签: java decimal bigdecimal


    【解决方案1】:

    使用这个。

    BigDecimal truncated= number.setScale(0,BigDecimal.ROUND_DOWN);
    

    【讨论】:

    • 这是最合适的答案,因为它不会改变数据类型
    【解决方案2】:

    试试number.toBigInteger().toString()

    【讨论】:

    • 你改变了数据类型
    【解决方案3】:

    不带分数的 BigDecimal 是 BigInteger。为什么不直接使用 BigInteger?

    【讨论】:

      【解决方案4】:

      这是我发现解决此问题的最优雅的方法:

      public static String convertDecimalToString (BigDecimal num){
          String ret = null;
          try {
              ret = num.toBigIntegerExact().toString();
          } catch (ArithmeticException e){
              num = num.setScale(2,BigDecimal.ROUND_UP); 
              ret = num.toPlainString();
          }
          return ret;
      }
      

      【讨论】:

        【解决方案5】:
        private void showDoubleNo(double n) {
            double num = n; 
            int decimalPlace = 2; 
            BigDecimal bd = new BigDecimal(num); 
            bd = bd.setScale(decimalPlace,BigDecimal.ROUND_UP); 
            System.out.println("Point is "+bd); 
        }
        

        【讨论】:

          【解决方案6】:
          public static String convertBigDecimalToString(BigDecimal bg) {
                System.out.println("Big Decimal Value before its convertion :" + bg.setScale(2, BigDecimal.ROUND_HALF_UP));
          
                String bigDecStringValue = bg.setScale(0,BigDecimal.ROUND_HALF_UP).toPlainString();
          
                System.out.println("Big Decimal String Value after removing Decimal places is :" + bigDecStringValue);
          
                return bigDecStringValue;
          }
          

          请注意:我使用了 'BigDecimal.ROUND_HALF_UP' ,只是为了确保舍入模式向“最近的邻居”舍入,除非两个邻居是等距的

          【讨论】:

            猜你喜欢
            • 2013-07-20
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2020-07-23
            • 2014-09-02
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多