2010-06-28 25 views

cevap

6

Nasıl yapılabileceği önerilmektedir here.

private static double pow(double base, int exp){ 
    if(exp == 0) return 1; 
    double res = base; 
    for(;exp > 1; --exp) 
     res *= base; 
    return res; 
} 

public static double log(double x) { 
    long l = Double.doubleToLongBits(x); 
    long exp = ((0x7ff0000000000000L & l) >> 52) - 1023; 
    double man = (0x000fffffffffffffL & l)/(double)0x10000000000000L + 1.0; 
    double lnm = 0.0; 
    double a = (man - 1)/(man + 1); 
    for(int n = 1; n < 7; n += 2) { 
     lnm += pow(a, n)/n; 
    } 
    return 2 * lnm + exp * 0.69314718055994530941723212145818; 
} 
2

Java ME içinde kayan nokta hesaplamaları için Nikolay Klimchuk yönettiği "Float11" sınıfını kullandık:

İşte o siteden bir çözümdür. Orijinal bağlantı bozuk görünüyor, ancak mevcut here.

+0

Vay canına, bütün bu yıllardan sonra sınıfım hala ... –

İlgili konular