double与BigDecimal使用姿势

总在项目中看到Double与BigDecimal被用错的情况
1.double-计算时容易出现不精确的问题

在这里插入图片描述
BigDecimal d1 = BigDecimal.valueOf(12.3)//结果是12.3 你预期的
BigDecimal d2 = new BigDecimal(12.3) //结果是12.300000000000000710542735760100185871124267578125

涉及到精准计算如金额,一定要使用BigDecimal或转成long或int计算
若不需要精准的,如一些统计值:(本身就没有精确值)可以用double

用户平均价格,店铺评分,用户经纬度等本身就没有精准值一说的推荐使用double或float,

你可能感兴趣的:(java)