БлогNot. "Тайна" квадратного корня в Java2ME

"Тайна" квадратного корня в Java2ME

А то всё круглые попадаются, сколько ни копай землю :)

Спрашивает Андрей (faandrew{САМИ_ЗНАЕТЕ_ЧТО}mail.ru)

Как вычелить корень на java для телефона??? Я и Math.sqrt(4); пробовал и просто sqrt(4); и всяко ещё по разному делал, но всё равно WTK 2.0 Toolkit выдаёт ошибку:
:90: cannot resolve symbol
symbol : method MathSqrt (int)
location: class midlet
String s1=String.valueOf(Math.Sqrt(2));
Я уж прям не знаю что делать, помоги:))

Мой ответ:

Читаем доку по WTK:

sqrt
...
Since:
CLDC 1.1

В WTK идём Project, Settings, вкладка API Selection - CLDC 1.1 выбрано?

Если да -

import java.lang.Math;

в начале файла

double a; a = Math.sqrt(аргумент);

в коде.

Регистр символов имеет значение.

Продолжение истории:

CLDC было 1.0 исправил на 1.1 на всёравно пишет туже ошибку, втавил код:
double a;
a = Math.sqrt(аргумент);
Ошибка:
cannot resolve symbol
symbol : method sqrt (double)
location: class java.lang.Math
perem = Math.sqrt(4);

Мой ответ:

Поставь еще MIDP2.0... хотя по докам в 1.0 должно работать. Не бывает чудес-то :)

У меня, правда, давно WTK 2.2, но ещё в 2.0, кажись, я компилировал мидлет MobileMath (исходники есть на http://nickolay.info/soft/java2me.html ) - там тоже есть квадратный корень и прекрасно берётся. cannot resolve symbol, понятное дело, означает, что не узнаёт имя метода...

"Физически" нужные либы лежат в WTK\lib\cldcapi10.jar и WTK\lib\cldcapi11.jar

Можно распаковать тем же WinRARом и увидеть, что в файле
cldcapi10\java\lang\Math.class
нет строки sqrt, а в
cldcapi11\java\lang\Math.class
есть

И наконец:

Спасибо, уже с твоего сайта поставил j2re-1_4_2_09-windows-i586-p, j2sdk-1_4_2_09-windows-i586-p, sun_java_wireless_toolkit-2_3-beta-windows и всё заработало на MIDP2.0 и CLDC 1.1 Я прям счаслив:) А то даже переменные с плавающей запятой не работали в WTK 2.0

12.12.2009, 01:50 [9321 просмотр]


теги: java2me

К этой статье пока нет комментариев, Ваш будет первым