1、BigDecimal
在银行、帐户、计费等领域,BigDecimal提供了精确的数值计算,一共有8种舍入方式需要了解并掌握。
(1)、ROUND_UP
舍入远离零的舍入模式。
在丢弃非零部分之前始终增加数字(始终对非零舍弃部分前面的数字加1)。
注意,此舍入模式始终不会减少计算值的大小。
例子:
原值: 4.5 ==> 5
原值: 2.2 ==> 3
原值: 1.6 ==> 2
原值: -1.1 ==> -2
原值: -1.6 ==> -2
原值: -2.6 ==> -3
(2)、ROUND_DOWN
接近零的舍入模式。
在丢弃某部分之前始终不增加数字(从不对舍弃部分前面的数字加1,即截断)。
注意,此舍入模式始终不会增加计算值的大小。
例子:
原值: 4.5 ==> 4
原值: 2.2 ==> 2
原值: 1.6 ==> 1
原值: -1.1 ==> -1
原值: -1.6 ==> -1
原值: -2.6 ==> -2
(3)、ROUND_CEILING
接近正无穷大的舍入模式。
如果 BigDecimal 为正,则舍入行为与 ROUND_UP 相同;
如果为负,则舍入行为与 ROUND_DOWN 相同。
注意,此舍入模式始终不会减少计算值。
例子:
原值: 4.5 ==> 5
原值: 2.2 ==> 3
原值: 1.6 ==> 2
原值: -1.1 ==> -1
原值: -1.6 ==> -1
原值: -2.6 ==> -2
(4)、ROUND_FLOOR
接近负无穷大的舍入模式。
如果 BigDecimal 为正,则舍入行为与 ROUND_DOWN 相同;
如果为负,则舍入行为与 ROUND_UP 相同。
注意,此舍入模式始终不会增加计算值。
例子:
原值: 4.5 ==> 4
原值: 2.2 ==> 2
原值: 1.6 ==> 1
原值: -1.1 ==> -2
原值: -1.6 ==> -2
原值: -2.6 ==> -3
(5)、ROUND_HALF_UP
向“最接近的”数字舍入,如果与两个相邻数字的距离相等,则为向上舍入的舍入模式。
如果舍弃部分 >= 0.5,则舍入行为与 ROUND_UP 相同;否则舍入行为与 ROUND_DOWN 相同。
注意,这是常用的舍入模式(四舍五入)。
例子:
原值: 4.5 ==> 5
原值: 2.2 ==> 2
原值: 1.6 ==> 2
原值: -1.1 ==> -1
原值: -1.6 ==> -2
原值: -2.6 ==> -3
(6)、ROUND_HALF_DOWN
向“最接近的”数字舍入,如果与两个相邻数字的距离相等,则为上舍入的舍入模式。
如果舍弃部分 > 0.5,则