我是靠谱客的博主 苗条西装,最近开发中收集的这篇文章主要介绍关于BigDecimal常量的使用ROUND_UP,ROUND_DOWN,ROUND_HALF_UP,ROUND_HALF_DOWN,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
ROUND_UP
截断的小数>0时进一位
//ROUND_UP
BigDecimal zero = new BigDecimal("1.0750000");
BigDecimal one = new BigDecimal("1.0750001");
BigDecimal two = zero.setScale(3,BigDecimal.ROUND_UP);
BigDecimal three = one.setScale(3,BigDecimal.ROUND_UP);
System.out.println("two="+two); //two=1.075
System.out.println("three="+three); //three=1.076
ROUND_DOWN
直接舍弃截断的小数,不在小数位上进一位,不管舍弃的数值有多大
BigDecimal zero = new BigDecimal("1.0740000");
BigDecimal one = new BigDecimal("1.0790001");
BigDecimal two = zero.setScale(2,BigDecimal.ROUND_DOWN);
BigDecimal three = one.setScale(2,BigDecimal.ROUND_DOWN);
System.out.println("two="+two);
System.out.println("three="+three);
two=1.07
three=1.07
ROUND_HALF_UP
四舍五入,数学意义上的四舍五入
BigDecimal zero = new BigDecimal("1.0740000");
BigDecimal one = new BigDecimal("1.0790001");
BigDecimal two = zero.setScale(2,BigDecimal.ROUND_HALF_UP);
BigDecimal three = one.setScale(2,BigDecimal.ROUND_HALF_UP);
System.out.println("two="+two);
System.out.println("three="+three);
two=1.07
three=1.08
ROUND_HALF_DOWN
一开始我以为这个是五舍六入,其实不是
当截取掉的小数位的值>=5,且5后面还有>0的值,就会进一位
BigDecimal zero = new BigDecimal("1.0740001");
BigDecimal one = new BigDecimal("1.075000");
BigDecimal one1 = new BigDecimal("1.075001");
BigDecimal two = zero.setScale(2,BigDecimal.ROUND_HALF_DOWN);
BigDecimal three = one.setScale(2,BigDecimal.ROUND_HALF_DOWN);
BigDecimal three1 = one1.setScale(2,BigDecimal.ROUND_HALF_DOWN);
System.out.println("two="+two);
System.out.println("three="+three);
System.out.println("three1="+three1);
two=1.07
three=1.07
three1=1.08
最后
以上就是苗条西装为你收集整理的关于BigDecimal常量的使用ROUND_UP,ROUND_DOWN,ROUND_HALF_UP,ROUND_HALF_DOWN的全部内容,希望文章能够帮你解决关于BigDecimal常量的使用ROUND_UP,ROUND_DOWN,ROUND_HALF_UP,ROUND_HALF_DOWN所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复