在J2ME中Asin,Acos,Atan

时间:2010-10-21 16:34:29

标签: java-me

我如何在J2ME应用程序中使用Math.asin()(..等)?

(我看过Real Java(看起来它可以做到这一点)但它说我应该避免从字符串转换。我怎样才能从{{{{}创建一个新的Real 1}}值?)

2 个答案:

答案 0 :(得分:1)

从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看起来非常好。你绝对应该使用它。
如果仅使用String分配一次或几次数字,则不会影响应用程序的速度。

答案 1 :(得分:0)

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

  1. CLDC 1.0不支持任何浮点运算(不是说asin / acos / atan)。但是有一些第三方开发的包/ API支持FP操作,例如MicroFloat
  2. CLDC 1.1支持FP操作,但它仍然没有asin / acos / atan。你可以自己实现它 - 它相对容易。尝试google并找到acos / atan / asin
  3. 的备用java源代码