Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Господа, не нужно ломать копья в столь простом деле.
Если не хотите вникать в теорию представления вещественных чисел, то возьмите любой стандартный язык программирования и произведите указанные операции в них. Получите абсолютно такой же результат.
Господа, не нужно ломать копья в столь простом деле.
Если не хотите вникать в теорию представления вещественных чисел, то возьмите любой стандартный язык программирования и произведите указанные операции в них. Получите абсолютно такой же результат.
Не соглашусь. Если имеется в виду microsoft c++ run-time, то там в реализации fmod() используется команда сопроцессора FPREM, которая была добавлена в интеловский FPU до введения ее в стандарт IEEE. После того как IEEE разработал эту команду и добавил ее в стандарт, Intel добавила правильную реализацию в виде FPREM1. Так вот, FPREM выдает ошибочный результат, а FPREM1 - правильный.
Так что проблема не в теории представления вещественных чисел, а в реализации fmod() в MSVC.
Если лень ковыряться в ассемблере, возьмите любую полноценную программу для математических рассчетов, например Matlab, и посчитайте там остаток от деления. У меня (как и при использовании FPREM1) получается:
mod(4,0.4) = 0
Надо добавить в описании:
числа должны быть не меньше единицы.
И всё.