Перейти к содержанию
    

Не работает правильно, вычисление float в Keil

не слушайте Борща с его принятым размером мантисы.

 

Keil использует IEEE-754:

http://www.keil.com/support/man/docs/armli...58938949149.htm

 

которого достаточно для представления 25.1, можно проверить, например, здесь:

Вы просто не понимаете, как работает представление чисел с плавающей точкой. 25.1 не представляются точно в двойчной системе.

 

Чтобы было (я надеюсь) понятно, ответьте на простой вопрос - сколько надо ДЕСЯТИЧНЫХ разрядов чтобы ТОЧНО представить число 1/3? Теперь понятно? 251/10 в двоичной системе это абсолютно такая же ситуация.

 

Conan, :cheers:

 

Спасибо, конечно, но Вы бы лучше мысль свою пояснили про приведение типов. Смысл моего предложения ТС был в том, что при делении на 10 происходит приведение целого к вещественному с потерей точности, а при умножении вещественных точность выше, чем при делении. В чем я не прав? Только своими словами. Не нужно "братву с википедии" подтягивать.

Ерунда. Приведение ЦЕЛОГО к вещественному происходит без потери точности.

Поделить на 10 и умножить на 0.1 дадут одинаковый результат, хотя теоретически делить даже лучше, потому что в этом случае оба аргумента представлены абсолютно точно, в отличии от 0.1.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...