当前位置: 代码迷 >> 综合 >> java string转double再转int 四舍五入
  详细解决方案

java string转double再转int 四舍五入

热度:85   发布时间:2023-11-17 13:17:51.0

今天在写保险公司组装报文的接口时,发现保费对不上,结果发现price这个值是58.999966后面反正就是一大串数字,然后乘以100(保险公司那边要求按分),经过了intValue(),给我截取:

原本是这样写的:

 Double price=Double.valueOf(mapExtra1.get("price0")!=null?mapExtra1.get("price0").toString():"")*100;item.Premium=price.intValue();

更改后:

 Double price=Double.valueOf(mapExtra1.get("price0")!=null?mapExtra1.get("price0").toString():"")*100;item.Premium=(int) Math.round(price.doubleValue());

看下面的例子以及输出结果,可能更加容易明白:

        Double price=Double.valueOf(100.435346345657)*100;System.out.println(price);System.out.println((int) Math.round(price.doubleValue()));System.out.println(price.intValue());
10043.5346345657
10044
10043

 

  相关解决方案