Страница 1 из 1

Calculators - Калькуляторы: корректность вычислений

Добавлено: 07 Апрель 2012, 20:21
Developer
Привет всем участникам форума!

Для ввода значения пользователю необходимо произвести некоторые предварительные вычисления.
Для этого решил использовать шаблон калькулятора от strategyonline.co.za J-Calculator.
Данный шаблон прекрасно работает, однако его вычисления не корректны:
К примеру 2.35 - 2.349999999 должно быть 0.000000001
однако калькулятор strategyonline.co.za J-Calculator: 2.35 - 2.349999999 даёт результат 1.0000000827403.

Бесплатный пример калькулятора SDCALC.ZIP Результат 2.35 - 2.349999999 = 1.000000082740

Встроенный калькулятор Windows 7 2.35 - 2.349999999 = 0.000000001

J-Calculator использован в среде C8(8.0.8973) Windows 7 SP1

Калькулятора SDCALC.ZIP использован в среде C8(8.0.8973) Windows 7 SP1 и в среде C6 Windows 7 SP1

В связи с данной проблемой, прошу участников форума высказать свои мнения по вопросу корректности вычислений данных калькуляторов, способы решения, а также прошу подсказать шаблон хорошего калькулятора (freeware или crack-нутый) с функциональностью не хуже чем в J-Calculator.

С Уважением, Developer, cfwdeveloper@gmail.com

Re: Calculators - Калькуляторы: корректность вычислений

Добавлено: 09 Апрель 2012, 13:51
kreator
Ну, вообще, понятно откуда ноги растут. Посмотрел я калькулятор, который был в примерах тогда ещё TopSpeed'а. Подозреваю на его основе всё сделано. По тексту там две переменные - Number (STRING) и Operand (Real). И идёт выражение Number = Operand - Number. И в какой-то момент результат получается в виде 1.0000000827403е-6 (типа этого). Преобразование из REAL в STRING дает этот результат (по мануалу - в преобразовании участвуют только 15 символов).
Как обойти? Ничего простого пока на ум не приходит.

Re: Calculators - Калькуляторы: корректность вычислений

Добавлено: 09 Апрель 2012, 14:38
Developer
Привет всем!

Kreator спасибо за отклик на данную тему!

Проблема корректности вычислений данных калькуляторов как было правильно отражено в ответе состоит именно в преобразовании из REAL в STRING без учёта порядка. Сам использовал простой пример в WINDOW ENTRY REAL ENTRY3=ENTRY1-ENTRY2 и получил ответ в формате 1.00000008274037e-09.
Возможно, если бы авторы данных калькуляторов использовали тип DECIMAL такая проблема не возникла.

В связи с тем, что эта проблема в данных калькуляторах присутствуют, возникает вопрос, а существует ли шаблон (исходник) калькулятора в котором данная проблема отсутствует или все разработчики данных калькуляторов наступали на одни и те же грабли и даже не удосужились выполнить проверку.
А ведь шаблон калькулятора от strategyonline.co.za J-Calculator коммерческий продукт.

Прошу участников форума оставить свои мнения на данную тему.

С Уважением, Developer, cfwdeveloper@gmail.com

Re: Calculators - Калькуляторы: корректность вычислений

Добавлено: 09 Апрель 2012, 16:01
kreator
Был раньше в примерах - G_Calc. Я его пользую, там ничего сложного, обыкновенная аппликуха с ручным кодом. Если не найдешь, пиши, я пороюсь в архивах, или в TXA сэкспортирую. Насчет DECIMAL надо проверить.

Re: Calculators - Калькуляторы: корректность вычислений

Добавлено: 10 Апрель 2012, 10:36
Yufil
У меня валяется самодельный калькулятор, скажи почту - кину...
yufil@post.ru , ICQ# 75924439

Re: Calculators - Калькуляторы: корректность вычислений

Добавлено: 10 Апрель 2012, 10:45
kreator
Да, DECIMAL работает. Если надо могу кинуть на мыло исправленный G_Calc.

Re: Calculators - Калькуляторы: корректность вычислений

Добавлено: 11 Апрель 2012, 0:36
ABBASoft
Ребята (Yufil, Kreator), а почему бы Вам не бросить на общак (ftp)? Всем надо, пожалуйста!

Re: Calculators - Калькуляторы: корректность вычислений

Добавлено: 11 Апрель 2012, 15:21
kreator
Действительно, почему бы нет. Залил в _Misc Applications\G_Calc. Единственное, не убрал там вызов класса HTML Help с моими параметрами. Сами.

Re: Calculators - Калькуляторы: корректность вычислений

Добавлено: 11 Апрель 2012, 23:37
Игорь Столяров
Тест на G-Calc ... См. пример в прикрепленном файле.
Код калькулятора я публиковал в каком-то сообщении в форуме, где мы обсуждали калькуляторы - см. архив ...