首页  

BigDecimal 使用注意点     所属分类 java 浏览量 967
无法整除会报错
java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result.

用 BigDecimal(String val)  
 
BigDecimal bd = new BigDecimal("0.333");


import java.math.BigDecimal; import java.math.RoundingMode; public class BigDecimalTest { public static void main(String[] args) throws Exception { BigDecimal bd0 = new BigDecimal(1.0/3); System.out.println(bd0); bd0 = bd0.setScale(3, RoundingMode.HALF_UP); System.out.println(bd0); bd0 = new BigDecimal("0.333"); System.out.println(bd0); bd0 = bd0.setScale(2, RoundingMode.HALF_UP); System.out.println(bd0); BigDecimal bd1 = new BigDecimal("1"); BigDecimal bd2 = new BigDecimal("2"); BigDecimal bd3 = bd1.divide(bd2); System.out.println(bd3); bd2 = new BigDecimal("3"); bd3 = bd1.divide(bd2,3, RoundingMode.HALF_UP); System.out.println(bd3); // java.lang.ArithmeticException: Non-terminating decimal expansion; no exact // representable decimal result. try { bd2 = new BigDecimal("3"); bd3 = bd1.divide(bd2); System.out.println(bd3); } catch (Throwable e) { System.out.println(e); } } }

上一篇     下一篇
flink内存管理机制

为何kafka要去掉zookeeper依赖

flink 运行模式 批处理与流处理模式

小巧的Java编译器 Janino

Flink 知识点汇总

Flink Watermark 机制