您的位置:首页 > 编程语言 > Java开发

Java Math的 floor,round和ceil的总结

2010-10-09 15:55 471 查看
floor 返回不大于的最大整数

round 则是4舍5入的计算,入的时候是到大于它的整数(当-1.5时可见,四舍五入后得到的结果不是我们期待的,解决办法是先对他取绝对值,然后在用round方法)

round

方法,它表示“四舍五入”,算法为
Math.floor(x+0.5)

,即将原来的数字加上
0.5

后再向下取整,所以,
Math.round(11.5)

的结果为
12


Math.round(-11.5)

的结果为
-11



ceil 则是不小于他的最小整数

看例子

Math.floorMath.roundMath.ceil
1.411

2

1.512

2

1.612

2

-1.4-2-1

-1

-1.5-2-1

-1

-1.6-2-2

-1

测试程序如下:

view plain
copy to clipboard
print
?

public

class
MyTest {

public

static

void
main(String[] args) {

double
[] nums = {
1.4
,
1.5
,
1.6
, -
1.4
, -
1.5
, -
1.6
};

for
(
double
num : nums) {

test(num);

}

}

private

static

void
test(
double
num) {

System.out.println("Math.floor("
+ num +
")="
+ Math.floor(num));

System.out.println("Math.round("
+ num +
")="
+ Math.round(num));

System.out.println("Math.ceil("
+ num +
")="
+ Math.ceil(num));

}

}

public class MyTest {
public static void main(String[] args) {
double[] nums = { 1.4, 1.5, 1.6, -1.4, -1.5, -1.6 };
for (double num : nums) {
test(num);
}
}
private static void test(double num) {
System.out.println("Math.floor(" + num + ")=" + Math.floor(num));
System.out.println("Math.round(" + num + ")=" + Math.round(num));
System.out.println("Math.ceil(" + num + ")=" + Math.ceil(num));
}
}


运行结果

Math.floor(1.4)=1.0

Math.round(1.4)=1

Math.ceil(1.4)=2.0

Math.floor(1.5)=1.0

Math.round(1.5)=2

Math.ceil(1.5)=2.0

Math.floor(1.6)=1.0

Math.round(1.6)=2

Math.ceil(1.6)=2.0

Math.floor(-1.4)=-2.0

Math.round(-1.4)=-1

Math.ceil(-1.4)=-1.0

Math.floor(-1.5)=-2.0

Math.round(-1.5)=-1

Math.ceil(-1.5)=-1.0

Math.floor(-1.6)=-2.0

Math.round(-1.6)=-2

Math.ceil(-1.6)=-1.0
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: