"Тайна" квадратного корня в 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 [9393 просмотра]