java中math是什么意思,java中的Math种

java中math是什么意思,java中的Math种当前位置:我的异常网»编程»java中的Math种java中的Math种www.myexceptions.net网友分享于:2013-09-03浏览:22次java中的Math类Java中的Math类属于java.l

当前位置:我的异常网» 编程 » java中的Math种

java中的Math种

www.myexceptions.net  网友分享于:2013-09-03  浏览:22次

java中的Math类

Java中的Math类属于java.lang包中,Math的所有方法均用static声明,所以使用该类中的方法时,可以直接使用包名·方法名,如:Math.sin();Math 类包含用于执行基本数学运算的方法,如初等指数、对数、平方根和三角函数。

首先,java.lang.Math中的四舍五入,上,下取整方法:

四舍五入:

round(float a)

返回最接近参数的 int。

System.out.println(Math.round(5.4d));

System.out.println(Math.round(5.5d));

输出结果为:5

6

向上取整:

ceil(double a)

返回最小的(最接近负无穷大)double 值,该值大于等于参数,并等于某个整数。

System.out.println(Math.ceil(5.4d));

System.out.println(Math.ceil(5.5d));

输出结果为:6.0

6.0

向下取整:

floor(double a)

返回最大的(最接近正无穷大)double 值,该值小于等于参数,并等于某个整数。

System.out.println(Math.floor(5.4d));

System.out.println(Math.floor(5.5d));

输出结果为:5.0

5.0

其中,在使用此类中的三角函数方法时,应注意方法的灵活运用,及传递合适的参数。

以sin30°为例:JDK中Math.sin(double a)的源代码:

public static double sin(double a)

参数:

a – 以弧度表示的角。

因此此时首先要把参数30转换为是弧度表示的角。使用方法sin(30*Math.PI/180),PI在数学方法中为π,而此时的π在角度里为180°,Math.PI/180就为1°,所以30*Math.PI/180就相当于了30°。

System.out.println(Math.sin(30*Math.PI/180));

输出结果为:0.49999999999999994

因为Math类中的方法直接计算出来的值均为近似值,若想得到精确值,需要使用Math中的四舍五入方法round()。

即为:

double sin30 = Math.round(Math.sin(30*Math.PI/180)*100);

System.out.println(“sin30=”+sin30/100);

输出结果为:sin30 °= 0.5

查看Math.round(double a)的源代码:

public static long round(double a)

返回最接近参数的 long。结果将舍入为整数:加上 1/2,对结果调用 floor 并将所得结果强制转换为 long 类型。换句话说,结果等于以下表达式的值:

(long)Math.floor(a + 0.5d)。即Math.sin(30*Math.PI/180)= 0.49999999999999994,乘以100后得49.99999999,然后49.99999999加上0.5得50.49999999,此时再利用Math类中的另一方法floor(),向下取整,得到50.0,将50.0返回给double sin30,然后sin30°=sin30/100,整除以100,即得到sin30°的精确值0.50.此时我们事先知道sin30°的结果为一个小于1的小数,故使用round()方法,乘以100,四舍五入,然后再除去100.

同理,当求反正弦时,如:asin0.5 Math.asin(0.5)*(180/Math.PI),此时的PI即π为圆周率的值,所以(180/Math.PI)得到的就是一弧度值,而后Math.asin(0.5)再乘以该一弧度的值,得到的就是弧度值,此时再利用round()方法,Math.round(Math.asin(0.5)*(180/Math.PI)*100),结果在整除以100即得到asin0.5的精确值为30°。

当我们预测到结果的整数部分为一位或0的小数时,我们若需取得精确值可使用round()的四舍五入方法,同时计算时需要使用先乘以100,后整除以100的操作。倘若结果的整数部分为两位及其以上时,此时使用round()四舍五入方法,既不必使用先乘以100,后才整除以100的操作。因为四舍五入方法四舍五入之后进的是整数位,即整数位的首位加1。

文章评论

今天的文章java中math是什么意思,java中的Math种分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/65938.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注