Java:在 BigDecimal 中删除小数点后的零

新手上路,请多包涵

我有一个这样的程序,

 BigDecimal bd = new BigDecimal(23.086);
BigDecimal bd1= new BigDecimal(0.000);

bd = bd.setScale(2, RoundingMode.HALF_UP).stripTrailingZeros();
bd1 = bd1.setScale(2, RoundingMode.HALF_UP).stripTrailingZeros();

System.out.println("bd value::"+ bd);
System.out.println("bd1 value::"+ bd1);

I get the following output: 23.09 for bd and 0.00 for bd1 , but I want bd1 as 0 不像 0.00 。我是否正确应用了这些方法?

原文由 Analysts 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 733
2 个回答
BigDecimal bd  = new BigDecimal(23.086);
BigDecimal bd1 = new BigDecimal(0.000);

bd  = bd.setScale(2, RoundingMode.HALF_UP).stripTrailingZeros();
bd1 = bd1.setScale(2, RoundingMode.HALF_UP).stripTrailingZeros();

System.out.println("bd value::"+ bd); System.out.println("bd1 value::"+ bd1);
System.out.println("new way:" + bd1.intValueExact());

//输出 bd 值::23.09

bd1 值::0.00

新方式:0

原文由 Marcia Ong 发布,翻译遵循 CC BY-SA 3.0 许可协议

尝试这个

import java.math.BigDecimal;
import java.text.DecimalFormat;

public class calculator{
    public static void main(String[] args) {
        BigDecimal bd = new BigDecimal(23.086);
        BigDecimal bd1= new BigDecimal(0.000);
        DecimalFormat df = new DecimalFormat("0.##");
        System.out.println("bd value::"+ df.format(bd));
        System.out.println("bd1 value::"+ df.format(bd1));

    }

}

原文由 upog 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏