· Начало · Статистика · WASM.RU · Noir.Ru ·

 WASM Phorum (Оффлайн - 24.11.2003) —› WASM.ASSEMBLER —› FPU: 10 * (0.7 + 0.1) = 7.9999999... =(

Посл.отвђт Сообщенiе


Дата: Янв 26, 2003 00:45:51

Преамбула
Написал на сях с плюсами парсер матвыражений, умеющий дифференцировать. Демонстрирую. Препод пишет выражение: ( 10 * (0.7 + 0.1) ) % 2. Жмёт кнопочку 'калькуляте'... = 1.

Амбула
Почитатав пару местных статей 'FPU посвящается', поверхностно осознал, почему 0.6 = 0.6, а 0.8 = 0.7999999... Только слабо себе представляю, как с этим бороться. Но догадываюсь, что можно, причём успешно, ибо всякие джавы и бейсики подобные ситуации разруливают автоматом.

Гуру, подскажите!


Дата: Янв 26, 2003 12:18:21 · Поправил: WKit

при переведении чисел из одной системы счисления в другую ВСЕГДА возникает погрешность, КРОМЕ случаев, когда основания их систем счисления являются степенями их наименьшего общего делителя. тут можно решить проблему только округлением.


Дата: Янв 28, 2003 16:58:01

coder
У меня смутные подозрения
Покажите Этот код!!!


Дата: Янв 29, 2003 20:37:05

Гхем. Если уж на сях, да еще и с плюсами, то это сюда:

http://www.parashift.com/c++-faq-lite/newbie.html#faq-29.16


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.068