Насколько я помню, float и double различаются диапазонами, что ведёт к разной точности и скорости вычислений. Однако сегодня заметил, что с разными числами округление происходит у этих типов данных по-разному. На скринах видно, что
Какая еще есть разница между типами данных float и double или я что-то в упор не вижу?
Принципиальный нюанс здесь в том, что вы оперируете десятичными числами, а float и double — бинарные. Те числа, которые вы делите и получаете в результате, непредставимы в бинарной системе счисления без периодичных дробей. Подробнее:
Вычисления на числах с плавающей точкой не работают
То, что вы наблюдаете — это не округления и обрубания, а попытки компьютера впихать невпихуемое и сделать вид, что на самом деле всё в порядке. Так как количество битов у мантиссы и экспоненты типов float и double разная, то "округления" и "обрубания" будут происходить с вашей точки зрения "непредсказуемо". Эта ситуация усугубляется ещё и тем, что точность вычислений на совести процессора, который, вообще говоря, не обязан выдавать точность до последнего знака. На другом компьютере вы можете увидеть другие результаты — если не включите специальный "предсказуемый" режим, который медленнее. Но даже в этом случае вы получите только одинаковые, но "непредсказуемые" результаты на разных компьютерах.
Когда работаете с float и double, примите как данность, что они всегда с погрешностью.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Посдкажите что делает данное регулярное выражение с \p{Punct}
Есть форма данных пользователяЕсть фильтр который обрабатывает форму, и если есть POST данные проверяет и сохраняет
Где можно скачать примеры Java программ? Чтобы было в одном архиве или собрано в одном местеМожет кто знает где можно скачать или ссылку откуда...
Есть сайт на WP с темой оформленияХочу создать WP-страницу, лэндинг, которая вообще никак не будет связана с основным сайтом (то есть, никаких...