java代码实现四舍五入的方式

Python025

java代码实现四舍五入的方式,第1张

如果你是用来交差的,可以再声明让我们贴代码,如果你是学习的,那么就探讨一下

1.四舍五入时可以用到int类型,它的得到的是整数,舍弃小数部分。

2.动脑筋想一些小办法,四舍五入可以自己写方法,不必用到API。

我们知道所谓四舍五入,就是满5进一,假设这个数为A,若无法进一,那么他减去0.5,必然小于该数。能进一,必然大于等于该数。那么可不可以用下面的方法?

private int fun(double d) {

int b = (int) d

if(d - 0.5 >= b){

b++

return b

}

else

return b

}

使用时调用就行了,如system.out(类实例.fun(5.2))

抛砖引玉,欢迎赐教(这个方法只是基本实现,其他提问人慢慢摸索吧)

直接方法:math.round()取离数值最近值

背景

最近接触银行项目,发现在做金额四舍五入的时候并没有传统意义上那么简单,银行为了尽量缩减在这方面的亏损,有一个单独的银行家舍入法。

传统的四舍五入运算

Math.round是在原来的数字的基础上+0.5然后向下取整。

银行家舍入法

舍去位的数值小于5时,直接舍去。

舍去位的数值大于5时,进位后舍去。

当舍去位的数值等于5时,若5后面还有其他非0数值,则进位后舍去,若5后面是0时,则根据5前一位数的奇偶性来判断,奇数进位,偶数舍去。

Java支持的四舍五入方式参数

1、ROUND_UP:远离零方向舍入。向绝对值最大的方向舍入,只要舍弃位非0即进位。

2、ROUND_DOWN:趋向零方向舍入。向绝对值最小的方向输入,所有的位都要舍弃,不存在进位情况。

3、ROUND_CEILING:向正无穷方向舍入。向正最大方向靠拢。若是正数,舍入行为类似于ROUND_UP,若为负数,舍入行为类似于ROUND_DOWN。Math.round()方法就是使用的此模式。

4、ROUND_FLOOR:向负无穷方向舍入。向负无穷方向靠拢。若是正数,舍入行为类似于ROUND_DOWN;若为负数,舍入行为类似于ROUND_UP。

5、HALF_UP:最近数字舍入(5进)。这是我们最经典的四舍五入。

6、HALF_DOWN:最近数字舍入(5舍)。昆明电脑培训http://www.kmbdqn.cn/建议在这里5是要舍弃的。

7、HAIL_EVEN:银行家舍入法。

java四舍五入的函数:Math.round

语法:

Math.round(x)

参数:

x 为一数值。

解释:

方法。返回对参数x四舍五入后所得的整数近似值。

例子:

public class MathTest {

public static void main(String[] args) {

System.out.println("小数点后第一位=5")

System.out.println("正数:Math.round(11.5)=" + Math.round(11.5))

System.out.println("负数:Math.round(-11.5)=" + Math.round(-11.5))

System.out.println()

System.out.println("小数点后第一位<5")

System.out.println("正数:Math.round(11.46)=" + Math.round(11.46))

System.out.println("负数:Math.round(-11.46)=" + Math.round(-11.46))

System.out.println()

System.out.println("小数点后第一位>5")

System.out.println("正数:Math.round(11.68)=" + Math.round(11.68))

System.out.println("负数:Math.round(-11.68)=" + Math.round(-11.68))

}

}

运行结果:

1、小数点后第一位=5

2、正数:Math.round(11.5)=12

3、负数:Math.round(-11.5)=-11

4、

5、小数点后第一位<5

6、正数:Math.round(11.46)=11

7、负数:Math.round(-11.46)=-11

8、

9、小数点后第一位>5

10、正数:Math.round(11.68)=12

11、负数:Math.round(-11.68)=-12