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类型的字段加个注解:

 

原文地址:https://www.cnblogs.com/longyao/p/11719884.html