我的 java 代码在 HP-UX hpdev B.11.23 U ia64 上运行,有时它会产生以下异常: java.lang.ArithmeticException: Non-terminating decimal expansion; 没有精确可表示的十进制结果。
导致它的代码:
BigDecimal p_Change = (BigDecimal)record.get("P_CHNG");
p_Change.divide(new BigDecimal(100));
记录很简单,是来自 sql 查询的列值的集合。p_change 来自 Oracle 数据库中的表,其中列是 NUMBER(10,2)。
我理解为什么会发生这种情况。频率是随机的,有时它会用相同的数据很好地划分。我只是想知道这是否与硬件有关。