не могу победить double
появилась беда, с которой я не в состоянии справиться без посторонней помощи.
при компиляции библиотеки, содержащей более четырех переменных типа double, проблем не возникает, однако MP2.2 на них реагирует неадекватно (ошибкой чтения либы). начинает утверждать, что ни одной из запрашиваемых функций в либе не нашел. тоже происходит, если присутствует много вещественных чисел типа .5 или 1.0. в связи с этим вопрос: как вы, ветераны либописания, справляетесь с этой проблеммой? ведь иногда необходимо использовать несколько нецелочисленных переменных. не составит ли для вас труда выложить кусочек кода любой библиотеки, где вы работаете с типом double? может, я что-то не так делаю. з.ы.: компилировал с помощью LibCo и Art-чего-то-там-от-Phantoma |
Ответ: не могу победить double
товарисч Phantom посоветовал следующее:
"Сделай копию своей библиотеки, только реализацию всех методов удали нафиг, просто пустые методы оставь, только return оставь и возвращай нужный тип данных. Глобальные приватные переменные можешь не объявлять. Скомпилируй, сунь в МП. МП тебе скомпилирует проект (понятно, что работать-то не будет, но компилятор ни к чему не придерётся), а потом в готовом JARе замени либу болванку настоящей либой. И проверь будет ли работать. Если будет, то это какой-то баг МП" проверил, работает... ":-D Вот видишь. То баг МП" ему смешно, а у моей любимой игрушки будто лапку оторвали. надо выбрасывать старые игрушки и учить java ..( |
Ответ: не могу победить double
А как внасчет скачать последнюю версию МП(3.3C)?
Проверял на следующей библиотеке Для MP2.2 тоже есть вариант (правда немного ненормальный): храните все double в массиве. Пример кода: ... програмное обеспечение обновляют ведь не просто так. |
Ответ: не могу победить double
Цитата:
Цитата:
добавляем в вашу библиотеку Lib_test, в строку вычисления одно число и библиотека становится непригодной для использования в мп. PHP код:
Цитата:
проблемма немного изменила свою суть, но осталась пока нерешенной. x = (int) (x1*(1.0 - i*1.0/(steps*1.0))*(1.0 - i*1.0/(steps*1.0)) + x2*(i*1.0/(steps*1.0))*(1.0 - i*1.0/(steps*1.0)) + x3*(i*1.0/(steps*1.0))*(i*1.0/(steps*1.0))); если в этой строке заменить любое 1.0 скажем на число 2.0, то библиотека не работает, мп ее не читает. в общем, мп2.2 не признает вычислений с любыми вещественными, отличными от 1.0 ..( |
Ответ: не могу победить double
забодай меня трамваем! включил floating-point и всё заработало. а вчера это не помогло почему-то. и я зачем-то вернул fixed-point и потратил еще один день на возню с несуществующей проблемой. вот зачем я это сделал? :wallbash:
ну чтож, по крайней мере, я победил этот драный double, а заодно пообщался с умными людьми ..) добавлено позже: хер я чо победил. продолжает глючить, теперь не могу объявить больше 1й переменной типа double. никакие float не помогают |
Часовой пояс GMT +4, время: 18:09. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot