| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > JavaScript: Общие вопросы > Посчитать комиссию WebMoney (0.8 %) |
| Автор: Black 29.7.2005, 21:26 | ||
| Необходимо считать на JavaScript комиссию WebMoney перевода между кошельками. Процент коммисии состовляет 0.8% от суммы перевода, но не менее 0.01 цент за перевод. Сделал так:
Но считает не правильно некоторые суммы, например 77.77 WMZ у меня считает как 0.62, а у WebMoney как 0.63 Не пойму как же они считают? |
| Автор: Black 29.7.2005, 22:02 | ||
Почему то хоть это не работает? kom += 0.01; вот на этой строчке ошибка, JavaScript не может прибавить 0.01 Добавлено @ 22:08 странновсе это числа больше 8 нормально прибавляются по 0.01 а меньше выдают подобные значения 0.06999999999999999 Что за это значит? |
| Автор: Sardar 29.7.2005, 23:01 | ||||
| Во первых ты когда нибудь задумывался зачем нужна функция eval? Второе, ты когда нибудь думал о том как дробные числа храняться в памяти компьютера? Знаем о числах с плавающей запятой(мантисса, экспонента) ? В третьих почему так?
О регах говорить не буду, мы уже условились что ты их используешь везде где не надо Если наступило просветление о настоящих машинных числах, то вспомним что фикситься бага простым округлением. Кстати деньги считают не в нативных числах, а используют специальные библиотеки с высокой точностью. Теперь глянь на этот код:
Подумай |
| Автор: Black 29.7.2005, 23:21 | ||||
| Sardar я то подумал.. твой код тоже не работает как надо, если бы все было так просто Эти чуваки из вебмани считают как-то по-особо хитрому, например, число 77.77 комиссия отWebMoney 0.63, твой код (впрочем как и мой) дает 0.62 Я так понял они до того любят деньги что себе их добавляют не используя правила округления.. например: 77.77 / 100 * 0.8 = 0.62216 ВебМанщики берут это число отрезают до дхух символов после точки... затем они еще как-то смотря, что если третья цифра не ноль они добавляют еще один цент :-) Вот такие они хитрые. Как бы это на JavaScript реализовать. Добавлено @ 23:25
Только этот код говорит сумму с комиссией, а мне надо отдельно комиссию узнать Добавлено @ 23:30 Вот я тупой Вот же правильный код:
Только как можно было до такого додуматься я так и не пойму |
| Автор: Иль 30.7.2005, 10:01 |
| Да все по чесному, они округляют по правилам округления "Все в свою сторону". Я тоже так делаю Простите за офтоп |