首页 Java java – 高效的BigDecimal向上和向下舍入两位小数

java – 高效的BigDecimal向上和向下舍入两位小数

在 java中,我试图找到一个有效的方法来根据条件将BigDecimal转换为两位小数,Up或Down. IF condition true then: 12.390 — 12.39 12.391 — 12.40 12.395 — 12.40 12.399 — 12.40 If condition false then: 12.3


java中,我试图找到一个有效的方法来根据条件将BigDecimal转换为两位小数,Up或Down.

IF condition true then:
    12.390 ---> 12.39
    12.391 ---> 12.40
    12.395 ---> 12.40
    12.399 ---> 12.40

 If condition false then:
    12.390 ---> 12.39
    12.391 ---> 12.39
    12.395 ---> 12.39
    12.399 ---> 12.39

什么是最有效的方式来完成这个?

解决方法

public static BigDecimal round(BigDecimal d,int scale,boolean roundUp) {
  int mode = (roundUp) ? BigDecimal.ROUND_UP : BigDecimal.ROUND_DOWN;
  return d.setScale(scale,mode);
}
round(new BigDecimal("12.390"),2,true); // => 12.39
round(new BigDecimal("12.391"),true); // => 12.40
round(new BigDecimal("12.391"),false); // => 12.39
round(new BigDecimal("12.399"),false); // => 12.39

本文来自网络,不代表青岛站长网立场。转载请注明出处: https://www.0532zz.com/html/kaifa/java/20200723/7153.html
上一篇
下一篇

作者: dawei

【声明】:青岛站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。

为您推荐

返回顶部