`

Math和StrictMath

    博客分类:
  • JAVA
 
阅读更多

Math位于java.lang包下,当我们试图调用Math.sin方法时候,在Math类中显示的是StrictMath中的 sin方法

public static double sin(double a) {
	return StrictMath.sin(a); // default impl. delegates to StrictMath
    }

 StrictMath中仅仅定义了方法,并且申明为static native

 /**
     * Returns the trigonometric sine of an angle. Special cases:
     * <ul><li>If the argument is NaN or an infinity, then the 
     * result is NaN.
     * <li>If the argument is zero, then the result is a zero with the
     * same sign as the argument.</ul>
     *
     * @param   a   an angle, in radians.
     * @return  the sine of the argument.
     */
    public static native double sin(double a);
    

 在Math类中,为了达到最快的性能,所有的方法都使用计算机浮点单元中的历程。如果得到一个完全可预测的结果比运行速度更重要的话,就应该使用StrictMath类。它使用“自由发布的Math库”实现算法,以去报在所有平台上得到相同的结果。有关这些算法的源代码请参阅http://www.netlib.org/fdlibm/index.html

参考:

        Math类还提供指数函数以及它的反函数--自然对数  Math.exp    Math.log

        Math类还提供了两个用于表示π和e常量的近似值 Math.PI    Math.E

提示:从JDK5.0开始,不必在数学方法和常量名前添加前缀Math,而只用在源文件的顶部加上下列内容就可以     Import static java.lang.Math.*;

        System.out.println("The square root of \u03C0 is "+sqrt(PI));

分享到:
评论

相关推荐

    javaMatclass汉文.doc

    在实际编程中,开发者可以根据需求选择使用Math类或StrictMath类,前者注重性能,后者强调精确性。对于那些对精度要求非常高的应用,如金融计算或科学模拟,通常推荐使用StrictMath类。而对于一般用途的数学计算,...

    平方根_java计算平方根_

    在数学中,一个非负实数的平方根总是非负的,因此,如果输入的数是负数,`Math.sqrt()`和`StrictMath.sqrt()`都会抛出`Math.sqrt()`异常。为了处理负数的平方根,可以考虑使用复数或者根据具体需求定义特殊的行为。 ...

    JDK_API1.6中文版

    public final class Mathextends ObjectMath 类包含用于执行基本数学运算的方法,如初等指数、对数、平方根和三角函数。 与 StrictMath 类的某些数学方法不同,并非 Math 类所有等价函数的实现都定义为返回逐位...

    Andorid 科学计算器源码

    在Android中,我们可以利用Java Math库或者Android提供的 StrictMath 类来完成这些计算。例如,对数函数(log)可以使用Math.log(),三角函数(sin、cos、tan)可以使用Math.sin()、Math.cos()和Math.tan(),指数...

    JAVA写的标准数学计算器

    对于更复杂的数学运算,如三角函数、对数等,可以使用`Math`类或者`StrictMath`类提供的静态方法。 标签中的“标准数学计算器”可能意味着这个计算器不仅包含基本的四则运算,还可能包括一些高级功能,比如开方、幂...

    Android应用源码之科学计算器源码.rar

    在Android中,这些数学运算可以借助Java的`Math`类或` StrictMath`类来实现。例如,`Math.pow()`用于计算幂,`Math.log()`用于求对数,`Math.sqrt()`用于开方等。源码中会有一个或多个类专门负责这些计算逻辑,通过...

    Learn.Java.for.Android.Development_Apress.2010+src

    Java APIs: In addition to Object and APIs related to exceptions, you explore Math, StrictMath, BigDecimal, BigInteger, Package, Boolean, Character, Byte, Short, Integer, Long, Float, Double, Number, ...

    java-java-lang包.pdf

    - StrictMath:与Math类相似,但是对浮点运算的算法更为严格,主要是为了保证在不同平台上得到一致的结果。 3. 异常处理相关的类: - Throwable:是所有错误(Error)和异常(Exception)的超类,提供了错误跟踪...

    java_lang包详解.pdf

    首先,`java.lang`包包含了基本数据类型的包装类,如`Boolean`, `Long`, `StrictMath`, `Byte`, `Math`, `String`, `Character`, `Number`, `StringBuffer`, `Class`, `Object`, `System`, `ClassLoader`, `Package`...

    javase1.7下载

    10. **新的数学库函数**:在java.lang.Math和java.lang.StrictMath类中添加了一些新的数学函数,如hypot()、ulp()等。 11. **改进的反射API**:增强了反射API,提供了一些新的方法,如Class的isModule()、getModule...

    java-lang包详解

    - **StrictMath**: 提供了数学运算,其所有方法都保证是精确的,不会溢出。 - **Byte**: 包装字节类型(byte),提供了与字节相关的操作。 - **Math**: 提供了各种数学运算方法,如平方根、指数、对数等。 - **...

    Java核心API需要掌握的程度

    14. **StrictMath**:提供了更加严格的数学计算方法。 15. **String/StringBuffer/StringBuilder**:字符串处理类,其中`StringBuilder`和`StringBuffer`提供了可变字符串的操作,而`String`类则是不可变的。 16. **...

    Jafama:精度为1e-15ish的(严格)FastMath类。-开源

    Jafama(Java快速数学)由与java.lang.Math处理相对应的快速(但不是草率的)组成,外加其他处理。 它们通常快2-4倍(最多15倍),准确度约为1e-15,并且可以处理特殊情况(NaN等)。 从2.1版开始,还提供了...

Global site tag (gtag.js) - Google Analytics