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

Java中Math类容易搞混的几个方法

2012-11-24 09:21 218 查看
package com.anjoyo.day1124;

public class TestMath {
public static void main(String[] args) {
double i = 11.4;
double i1 = 11.5;
double i2 = 11.6;
double i3 = -11.4;
double i4 = -11.5;
double i5 = -11.6;
/*ceil(double d):返回大于等于参数并等于某个整数的最小double值。也就是向上取最接近参数的整数的double值。
*  特殊情况    如果参数值已经等于某个整数,那么结果与该参数相同。
如果参数为 NaN、无穷大、正 0 或负 0,那么结果与参数相同。
如果参数值小于 0,但是大于 -1.0,那么结果为负 0。
注意,Math.ceil(x) 的值与 -Math.floor(-x) 的值完全相同。
*/
System.out.println(Math.ceil(i));//12.0
System.out.println(Math.ceil(i1));//12.0
System.out.println(Math.ceil(i2));//12.0
System.out.println(Math.ceil(i3));//-11.0
System.out.println(Math.ceil(i4));//-11.0
System.out.println(Math.ceil(i5));//-11.0

/*public static double floor(double a):
*返回小于等于参数并等于某个整数的最大double值。也就是向下取最接近参数的整数的double值。
*特殊情况:
*  如果参数值已经等于某个整数,那么结果与该参数相同。
*  如果参数为 NaN、无穷大、正 0 或负 0,那么结果与参数相同。
* */
System.out.println(Math.floor(i));//11.0
System.out.println(Math.floor(i1));//11.0
System.out.println(Math.floor(i2));//11.0
System.out.println(Math.floor(i3));//-12.0
System.out.println(Math.floor(i4));//-12.0
System.out.println(Math.floor(i5));//-12.0

/*public static int round(float a)
*  加上 1/2,对结果调用 floor 并将所得结果强制转换为 int 类型。换句话说,结果等于以下表达式的值:
*  (int)Math.floor(a + 0.5f)
* 也就是四舍五入,但是要注意负数的时候.5是舍去的。
* 特殊情况:
* 如果参数为 NaN,那么结果为 0。
* 如果结果为负无穷大或任何小于等于 Integer.MIN_VALUE 的值,那么结果等于 Integer.MIN_VALUE 的值。
* 如果参数为正无穷大或任何大于等于 Integer.MAX_VALUE 的值,那么结果等于 Integer.MAX_VALUE 的值。
* */
System.out.println(Math.round(i));//11
System.out.println(Math.round(i1));//12
System.out.println(Math.round(i2));//12
System.out.println(Math.round(i3));//-11
System.out.println(Math.round(i4));//-11
System.out.println(Math.round(i5));//-12
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Math round ceil floor