BigDecimal 与 mysql的decimal
double和float类型存储数字可能导致 精度丢失,而BigDecimal则不会有精度损失问题。创建BigDecimal对象,注意不要直接传入一个double类型的数,因为这样有可能出现误差,结果是不确定的。
BigDecimal BigDecimal(double d); //废弃,精度不能保证
BigDecimal BigDecimal(String s); //常用,推荐使用
static BigDecimal valueOf(double d); //常用,推荐使用
BigDecimal("0.1")
BigDecimal(0.1)
BigDecimal.valueOf(0.1)
第一个和第三个直接等于0.1 而第二个则只是近似于0.1
add(BigDecimal)
BigDecimal对象中的值相加,然后返回这个对象
subtract(BigDecimal)
BigDecimal对象中的值相减,然后返回这个对象
multiply(BigDecimal)
BigDecimal对象中的值相乘,然后返回这个对象
divide(BigDecimal)
BigDecimal对象中的值相除,然后返回这个对象
public BigDecimal divide(BigDecimal divisor, int scale, RoundingMode roundingMode)
设置小数的处理方式和返回小数位数
Mysql 与BigDecimal
通常,任何MySQL数据类型都可以转换为 java.lang.String,并且任何数字类型都可以转换为任何Java数字类型,但可能会出现舍入,溢出或精度损失。
Mysql数据库的decimal类型 对应Java类型为 java.math.BigDecimal
网友评论