![]() |
Вычитание нецелых чисел
Сначала задал вопрос в общем разделе, но прошло время и я склонился к мысли, что это уже для раздела связанного с кодом.
Простой пример - сделал я калькулятор или что то, что предназначено для счёта и пользователь начинает считать - Код AS3:
Как мне получить ожидаемый результат? И это я измеряю таймер, в котором даже такие значения очень важны. И округлять int, uint нельзя и RegExp тоже нельзя цифры резать... Как быть? я только обрадовался, что закончил с плавностью и распределением скачков ( считал, что сегодня доведу до ума ), но а теперь я вообще не знаю, как это можно сделать. И даже если перевести счёт в милисекунды ( без деления на тысячу ), тоже самое. Только выявить сложнее, но ошибка остается. Добавлено через 7 минут И программа воспринимает число 1.1379786002407855e-15 не как 0.000000000000001137, а как полтора. |
Цитата:
А вопрос не возникал почему все функции работы с временем в интовых миллисекундах? По твоему вопросу - ничего с этим не поделаешь. Нужна точность больше - умножай на 10-100-1000, но лучше в итоге прийти к работе с целыми. |
Цитата:
Какие проблемы? Добавлено через 6 минут Цитата:
Код AS3:
|
Цитата:
|
Akopalipsis, вам знакомо понятие "экспонента"?
Вот это число 1.1379786002407855e-15, совсем не полтора, как вам показалось |
Цитата:
|
Цитата:
У первого числа точность намного выше, чем у второго. У второго точность всего 4 знака, а у первого 17. В данном случае в первом числе мантисса равна 11379786002407855, а во втором 0000000000000001137. Вы же не пишете целое число 2 как 0000000002, хотя в целом оба варианта правильные. Таким же образом экономится ограниченная память, которую отводят под число, опуская незначащие нули и заменяя их порядком числа в виде e-15 (то есть мантисса умноженная на десять в степени, которая указана после e, в данном случае мантисса умножить на десять в степени минус 15) На самом деле все задаваемые вами вопросы уже миллион раз решены и расписаны, просто нужно не полениться поискать. Обычно на форум пишут в случае, когда неделя упорных поисков и проб не дают никаких результатов |
KumoKairo Спасибо за обьяснения!
Цитата:
|
Цитата:
Наверное ни сколько не преувеличу, сказав, что это самый полезный ресурс для программиста. Там находятся ответы процентов на 95 всех вопросов, четко и без лишней воды. Ну а по поводу мантиссы http://ru.wikipedia.org/wiki/%D0%A7%...82%D0%BE%D0%B9 п.с. Так же очень советую почитать книжку SCJP Sun Certified Programmer for Java 6. Книжка хоть и по джаве, но там очень подробно рассматриваются вопросы типа "как это работает?" почитав её, многое поймете и об ас3. На русском этой книги не встречал, но, видимо это и не нужно, так как экзамен сам в любом случае только на английском. |
Akopalipsis, давно пора пройти ликбез. Курсы там каке-нибудь, можно онлайн, или просто почитать что-то отвлеченное от AS, ООП и прочей шняги. Потратьте недельку-другую-третью на основы: представление данных, работа с памятью, алгоритмы, библиотеки, девелоп-окружение (редакторы-компилеры-линкеры-дебуггеры). Незамутненное понятие обо всем таком может дать изучение основ Си, по крайней мере взять как отправную точку можно. Ибо оттуда многи ноги растут, сами увидите. Без обид :).
Если решитесь, настоятельно рекомендую изучать это все под никсами. И настоятельно рекомендую консольный режим :). |
| Часовой пояс GMT +4, время: 00:49. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.