美文网首页
BigDecimal:Non-terminating decim

BigDecimal:Non-terminating decim

作者: xiozho | 来源:发表于2017-01-12 15:49 被阅读0次

    Java BigDecimal Divide

    java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result.

    BigDecimal在执行divide,结果是除不尽的数字,比如10/3结果为3.333333...3循环,那BigDecimal将抛出此异常

    比如:

    BigDecimal num1 = new BigDecimal("10");
    BigDecimal num2 = new BigDecimal("3");
    num1.divide(num2); //无结果,抛异常
    

    如果想要程序正确处理,则需要设置精度:

    //10为保留小数位数,BigDecimal.ROUND_HALF_UP表示结果四舍五入
    num1.divide(num2,10,BigDecimal.ROUND_HALF_UP); 
    

    注意:使用BigDecimal做divide时,如果不能确定得到的结果一定不是除不尽的小数,则请指定精度及舍入规则

    Copyright © 2017-01-12 XIAOZHUO.WANG™

    相关文章

      网友评论

          本文标题:BigDecimal:Non-terminating decim

          本文链接:https://www.haomeiwen.com/subject/ddndbttx.html