为了账号安全,请及时绑定邮箱和手机立即绑定

为什么最后两行参数为3.4f,3.4调用round取整都返回3,不应该师加上0.5之后返回4吗

package com.数字处理类;

public class IntFunction {

 public static void main(String[] args) {
  // TODO Auto-generated method stub
  //返回一个大于等于参数的整数
  System.out.println("使用cell()方法取整:"+Math.ceil(5.2));
  //返回一个小于等于参数的整数
  System.out.println("使用floor()方法取整:"+Math.floor(2.5));
  //返回一个最接近参数的整数
        System.out.println("使用rint()方法取整:"+Math.rint(2.7));
        //加上0.5之后返回最接近参数的整数
        System.out.println("使用round()方法取整:"+Math.round(3.4f));
        //加上0.5之后返回最接近参数的long类型
        System.out.println("使用round()方法整:"+Math.round(3.4));
 }

}

正在回答

2 回答

 “加上0.5之后返回最接近参数的long类型”这句话的意思就是四舍五入。不用管什么加0.5,不用管什么0.5,把这句话理解为四舍五入就对了。

0 回复 有任何疑惑可以回复我~

查询API知道:

public static long round(double a)

返回最接近的参数long ,其中long四舍五入为正无穷大。

特殊情况:

  • 如果参数是NaN,结果为0。

  • 如果参数为负无穷大或小于或等于值Long.MIN_VALUE的值,则结果等于值Long.MIN_VALUE

  • 如果参数为正无穷大或大于或等于Long.MAX_VALUE的值,则结果等于值Long.MAX_VALUE

所以这个方法可以看做是四舍五入

0 回复 有任何疑惑可以回复我~
#1

年纪轻轻想有猫 提问者

四舍五入不还是4吗
2018-07-20 回复 有任何疑惑可以回复我~
#2

qq_Kindergarten_0 回复 年纪轻轻想有猫 提问者

这样说吧3.5~3.9就是向上取整, 3.4~3.1就是向下取整
2018-07-21 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么最后两行参数为3.4f,3.4调用round取整都返回3,不应该师加上0.5之后返回4吗

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信