java中Long精度问题

1、
String price = "19.90"; // 19.99
int totalFee =(int)(new BigDecimal(price).multiply(new BigDecimal("100"))).doubleValue();
int totalFee2 = (int) (Double.parseDouble(price) * 100);
System.out.println(totalFee); //1990
System.out.println(totalFee2); //1989
Double 和bigdecimal处理不一样
2、
Long l = 112630689643634688L;
18位的Long,以Long类型返回给前端,前端解析出来的值,不一致。
解决办法:
在response对象里面的Long类型的字段加个注解:

 

 

 

 

posted @ 2019-10-22 15:05  蜗牛的信仰  阅读(3434)  评论(0编辑  收藏  举报