关于Java数据类型BigDecimal的问题
我在Oracle当中的数据类型是NUMBER(3)。
然后我在Java中的数据类型是BigDecimal。
存取都很正常,但是我在插入1000的时候他就抛出了以下这种异常,请问如何解决?
java.sql.SQLException: ORA-01438: 被指定的精度超过列所指定范围
就是想问一下如何判断BigDecimal的值大于了NUMBER(3)呢?
NUMBER(3)的意思是什么呢?小于三位的整数吗?
------解决方案--------------------将BigDecimal类型强制转换为int型就可以,他们类型不同不同存储的类型也不同,故会抱错
------解决方案--------------------NUMBER(3),就是三位整数,1000当然不行了
BigDecimal类型数据对位数不做限制,理论上可以任意大,你可以用BigDecimal下的DoubleValue()函数,得到它相对应的double类型值,然后去和num(3)进行比较
ps:不要将BigDecimal转换为int类型,因为BigDecimal可以带小数点,但转换为int后小数点以后的数字会删去,比较大小就不准确了。
------解决方案--------------------NUMBER(3)三位的整数