`
tao880314
  • 浏览: 6776 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

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。
0
0
分享到:
评论

相关推荐

    java中math类

    java中开发中不免用到math类包。 此几乎包含所有math中的方法

    java中math类.docx

    Java 中 Math 类的常用方法 Java 中的 Math 类提供了一些静态方法来执行基本数学运算,包括指数、对数、平方根、幂运算、三角函数等。这些方法可以帮助开发者快速实现数学运算,并且可以提高代码的可读性和可维护性...

    Java中Math类的常用方法

    ### Java中Math类的常用方法 #### 概述 在Java编程语言中,`Math`类提供了一系列静态方法用于执行基本数学运算。这些方法包括绝对值、最大值、最小值、平方根、指数函数等。本文将详细介绍`Math`类中的部分常用...

    java中math类的使用

    在Java编程语言中,`java.lang.Math`类提供了一系列用于执行基本数学运算的方法和常量。这个类包含静态方法和常量,使得开发者无需实例化对象即可直接调用其功能,极大地简化了数学计算的过程。 ### 常量 #### ...

    java中math类.pdf

    Java中的Math类是Java标准库中的核心类之一,位于java.lang包内,它提供了一系列用于执行基本数学运算的方法。Math类中的所有方法都是静态的,这意味着我们不需要创建Math类的实例,可以直接通过类名调用这些方法。...

    Java中Math类常用方法代码详解

    Java中Math类常用方法代码详解 Java中Math类是一个非常重要的类,提供了很多有用的数学函数来进行数学运算。在本文中,我们将对Java中Math类常用方法进行详解,通过实例代码给大家介绍这些方法的使用。 1. sqrt()...

    java中math类[文].pdf

    Java中的`Math`类是Java标准库中提供的一组用于执行基本数学运算的静态方法,它包含了许多处理数值计算的方法,适用于各种类型的数值操作。在本文中,我们将深入探讨`Math`类的一些主要方法和其用途。 1. `Math.abs...

    9.javaMath类.zip

    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 操作类

    java.math.BigDecimal 操作类,包含加减乘除、String型加减乘除精度格式化转换计算等

    基于Java中Math类的常用函数总结

    Java中的Math类是Java标准库(java.lang.Math)的一部分,提供了许多用于执行基本数学运算的静态方法。这个类包含了各种数学函数,可以帮助开发者处理常见的数学计算。以下是对Math类中常用函数的详细解释: 1. **...

    java word mathml Latex ooxml 互转

    在Java中,我们可以使用JEuclid库将MathML渲染为图像,或者使用MathMLCanonicizer库进行解析和转换。 3. **LaTeX** - LaTeX是一种基于TeX的文字处理系统,尤其适合于编写包含复杂数学公式的科技论文和报告。Java中...

    random调用类java.lang.math的成员方法

    random调用类java.lang.math的成员方法

    Can't find a codec for class java.math.BigDecimal.txt

    解决mongo数据插入时 报错问题 mogodb插入数据时报错Can't find a codec for class java.math.BigDecimal

    fmath-mathml-java-v2.1

    在Java中使用fmath-mathml-java-v2.1,开发者首先需要将JAR文件添加到项目构建路径中,然后通过import语句引入相关的类和方法。在处理MathML时,可能需要了解一些基本的MathML语法,以便正确构造MathML字符串。例如...

    java math01

    java

    java math library

    这个库包含了各种复杂的数学功能,覆盖了基础数学、高级数学以及统计学等多个领域,极大地扩展了Java标准库中Math类的功能。 一、基础数学操作 Java Math Library提供了对基本数学运算的支持,包括但不限于加法、...

Global site tag (gtag.js) - Google Analytics