java中Long精度问题

夙愿已清 提交于 2019-12-01 22:57:15

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

 

 

 

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!