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类包。 此几乎包含所有math中的方法
Java 中 Math 类的常用方法 Java 中的 Math 类提供了一些静态方法来执行基本数学运算,包括指数、对数、平方根、幂运算、三角函数等。这些方法可以帮助开发者快速实现数学运算,并且可以提高代码的可读性和可维护性...
### Java中Math类的常用方法 #### 概述 在Java编程语言中,`Math`类提供了一系列静态方法用于执行基本数学运算。这些方法包括绝对值、最大值、最小值、平方根、指数函数等。本文将详细介绍`Math`类中的部分常用...
在Java编程语言中,`java.lang.Math`类提供了一系列用于执行基本数学运算的方法和常量。这个类包含静态方法和常量,使得开发者无需实例化对象即可直接调用其功能,极大地简化了数学计算的过程。 ### 常量 #### ...
Java中的Math类是Java标准库中的核心类之一,位于java.lang包内,它提供了一系列用于执行基本数学运算的方法。Math类中的所有方法都是静态的,这意味着我们不需要创建Math类的实例,可以直接通过类名调用这些方法。...
Java中Math类常用方法代码详解 Java中Math类是一个非常重要的类,提供了很多有用的数学函数来进行数学运算。在本文中,我们将对Java中Math类常用方法进行详解,通过实例代码给大家介绍这些方法的使用。 1. sqrt()...
Java中的`Math`类是Java标准库中提供的一组用于执行基本数学运算的静态方法,它包含了许多处理数值计算的方法,适用于各种类型的数值操作。在本文中,我们将深入探讨`Math`类的一些主要方法和其用途。 1. `Math.abs...
9.javaMath类.zip9.javaMath类.zip9.javaMath类.zip9.javaMath类.zip9.javaMath类.zip9.javaMath类.zip9.javaMath类.zip9.javaMath类.zip9.javaMath类.zip9.javaMath类.zip9.javaMath类.zip9.javaMath类.zip9.java...
java.math.BigDecimal 操作类,包含加减乘除、String型加减乘除精度格式化转换计算等
Java中的Math类是Java标准库(java.lang.Math)的一部分,提供了许多用于执行基本数学运算的静态方法。这个类包含了各种数学函数,可以帮助开发者处理常见的数学计算。以下是对Math类中常用函数的详细解释: 1. **...
在Java中,我们可以使用JEuclid库将MathML渲染为图像,或者使用MathMLCanonicizer库进行解析和转换。 3. **LaTeX** - LaTeX是一种基于TeX的文字处理系统,尤其适合于编写包含复杂数学公式的科技论文和报告。Java中...
random调用类java.lang.math的成员方法
解决mongo数据插入时 报错问题 mogodb插入数据时报错Can't find a codec for class java.math.BigDecimal
在Java中使用fmath-mathml-java-v2.1,开发者首先需要将JAR文件添加到项目构建路径中,然后通过import语句引入相关的类和方法。在处理MathML时,可能需要了解一些基本的MathML语法,以便正确构造MathML字符串。例如...
java
这个库包含了各种复杂的数学功能,覆盖了基础数学、高级数学以及统计学等多个领域,极大地扩展了Java标准库中Math类的功能。 一、基础数学操作 Java Math Library提供了对基本数学运算的支持,包括但不限于加法、...