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

前端之家收集整理的这篇文章主要介绍了java – 高效的BigDecimal向上和向下舍入两位小数前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
java中,我试图找到一个有效的方法来根据条件将BigDecimal转换为两位小数,Up或Down.
  1. IF condition true then:
  2. 12.390 ---> 12.39
  3. 12.391 ---> 12.40
  4. 12.395 ---> 12.40
  5. 12.399 ---> 12.40
  6.  
  7. If condition false then:
  8. 12.390 ---> 12.39
  9. 12.391 ---> 12.39
  10. 12.395 ---> 12.39
  11. 12.399 ---> 12.39

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

解决方法

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

猜你在找的Java相关文章