Làm cách nào để tính logarit trong Java ME? Không có phương thức nào trong lớp Math
của Java ME cho nó, nhưng nó là available trong lớp Math
của Java SE.Làm thế nào để tính logarit trong Java ME?
5
A
Trả lời
6
Đề xuất cách thực hiện có thể được thực hiện here.
Dưới đây là một giải pháp từ trang web đó:
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
Tôi đã sử dụng lớp "Float11" Nikolay Klimchuk cho phép tính dấu chấm động trong Java ME. Liên kết ban đầu dường như bị hỏng nhưng có sẵn here.
Wow, lớp học của tôi vẫn còn sau tất cả những năm này ... –