java string转double再转int 四舍五入

Love The Way You Lie 2022-05-16 02:11 336阅读 0赞

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

原本是这样写的:

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

更改后:

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

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

  1. Double price=Double.valueOf(100.435346345657)*100;
  2. System.out.println(price);
  3. System.out.println((int) Math.round(price.doubleValue()));
  4. System.out.println(price.intValue());
  5. 10043.5346345657
  6. 10044
  7. 10043

发表评论

表情:
评论列表 (有 0 条评论,336人围观)

还没有评论,来说两句吧...

相关阅读