2010-10-21 40 views
0

如何在J2ME應用程序中使用Math.asin()(..等)?J2ME中的Asin,Acos,Atan

(我已經看了Real Java(和它看起來像它可以做到這一點),但它說我應該避免從字符串轉換。我怎麼能創建一個新的Realdouble值?)

回答

0

它取決於目標CLDC API的版本。

  1. CLDC 1.0不支持任何浮點操作(不是說asin/acos/atan)。但是有一些第三方開發的軟件包/ API支持FP操作,例如MicroFloat
  2. CLDC 1.1支持FP操作,但仍然缺乏asin/acos/atan。你可以自己實現它 - 這是相對容易的。嘗試爲ACOS /反正切谷歌和尋找替代Java源/ ASIN
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看上去很漂亮。你絕對應該使用它。
如果您只使用一次或多次字符串來分配號碼,這不會影響您的應用程序的速度。