Смеяццо или плакоть

Nov 16, 2018 05:55

В четверг получил коммент на мой код, мол в нём возможны проблемы с округлением. Это там, где идёт умножение или деление числа в формате с плавающей точкой на целую степень двойки, и где нету выхода за пределы области нормализованных значений. Человек удивительным образом за хрен знает сколько лет программирования не заметил, что работает с ( Read more... )

work, math, sad, software

Leave a comment

Comments 11

spamsink November 16 2018, 17:37:41 UTC
Так ему и напиши: "Are you bloody mad? I'm multiplying by a power of two, what kind of rounding do you mean?"

Хотя нет, это слишком агрессивно. Пригласи его на получасовой митинг "Floating-point format refresher for %his-name%"

Reply

alexanderr November 16 2018, 20:17:15 UTC
bloody американцы не говорят. это британизм, причем изрядно потасканный ;-)

Reply

spamsink November 16 2018, 21:46:51 UTC
Разумеется; поэтому и воспринимается не как оскорбительное, а как наигранное.

Reply


alexanderr November 16 2018, 20:15:27 UTC
т.е. все деление или умножение это просто сдвиг плавающей точки?

Reply

archaicos November 16 2018, 20:25:48 UTC
(ин|де)кремент экспоненты.

Reply


fatoff November 17 2018, 07:47:05 UTC
С округлением? При наличии отсутствия собственно операции округления? floor? ceiling?

Reply

archaicos November 17 2018, 14:30:06 UTC
Если умножать, например, на 5, то запросто будет округление.

Reply

fatoff November 17 2018, 14:51:03 UTC
Э... округление, это когда мы, имея исходное "значение", отнимаем или прибавляем некоторую дельту до какого-то "ближнего" предела "значения"?

Reply

archaicos November 17 2018, 14:58:47 UTC
У тебя точное произведение в общем случае может иметь мантиссу удвоенной длины. Но длина не резиновая и остаётся 24 или 53 бита. Что не влазит, округляется до них.

Reply


Leave a comment

Up