代码之家  ›  专栏  ›  技术社区  ›  user

J2ME中的Asin、Acos、Atan

  •  0
  • user  · 技术社区  · 14 年前

    我怎么能用 Math.asin() (.. 在J2ME应用程序中?

    (我看过 Real Java (看起来它可以做到这一点)但是它说我应该避免从字符串转换。我怎么能创造一个新的 Real 从一个 double 价值?)

    2 回复  |  直到 14 年前
        1
  •  1
  •   Oleh Prypin    14 年前

    由于MIDP 2.0,这应该有效:

    public static double asin(double a)
    {
        // -1 < a < 1
        // The function isn't very precise
        final double epsilon=1.0E-7; // Use this to adjust precision
        double x=a;
        // Newton's iterative method
        do x-=(Math.sin(x)-a)/Math.cos(x);
        while (Math.abs(Math.sin(x)-a)>epsilon);
        return x;
        // returned angle is in radians
    }
    

    但是嘿,那 Real - Java 看起来很不错。你一定要用它。
    如果只使用字符串指定一次或几次数字,则不会影响应用程序的速度。

        2
  •  0
  •   Barmaley    14 年前

    这取决于目标CLDC API的版本。

    1. CLDC 1.0不支持任何浮点操作(不是asin/acos/atan)。但是有一些第三方开发的包/API支持FP操作,例如。 MicroFloat
    2. CLDC 1.1支持FP操作,但仍然缺少asin/acos/atan。你可以自己实现它-这相对容易。尝试用google搜索acos/atan/asin的其他java源代码