问题
如题,由于微信在下单时使用的是整数,如9.9元,下单时价格为990,而公司平台的价格各有不同,并不仅仅支持微信支付,所以是在进行微信下单时,将现有的价格*100,就发现了该问题,代码如下:
float x = 9.9f;
System.out.println((int)( x * 100));
笔者预期的输出是990,但是实际输出确是989
解决方案
float x = 9.9f;
BigDecimal re1=new BigDecimal(Float.toString(x));
BigDecimal re2=new BigDecimal("100");
System.out.println(re1.multiply(re2).intValue());