情况:
要取表中一些经纬度的值,发现小数点后精度会丢失,应该在16位, 包括数据库导出表也会记录丢失,用程序取的话一般在6位左右会四舍五入
解决:
//用BigDecimal取出来
BigDecimal str = new BigDecimal(rs.getDouble(2));
//设置16位精度
BigDecimal bd1 = str.setScale(16, BigDecimal.ROUND_HALF_UP);
要取表中一些经纬度的值,发现小数点后精度会丢失,应该在16位, 包括数据库导出表也会记录丢失,用程序取的话一般在6位左右会四舍五入
解决:
//用BigDecimal取出来
BigDecimal str = new BigDecimal(rs.getDouble(2));
//设置16位精度
BigDecimal bd1 = str.setScale(16, BigDecimal.ROUND_HALF_UP);