Size: a a a

Хирьянов Т.Ф., Практика программирования на Python 3 (2019)

2020 May 13

ДГ

Денис Голубь... in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
Danke
источник

КК

Кирилл Картвелишвили... in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
вот эта ещё лучше https://m.habr.com/ru/company/otus/blog/487952/
источник

Д

Дмитрий in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
не туда
источник

OM

Oleg Makarikhin in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
mr.slavik
если взять 8 байт лонг - макс значение 18446744073709551615 - 64 бита, в double у тебя значащих бит 52 то есть макс значение 524503599627370496.
если у тебя динамический диапазон твоей величины небольшой- например для частоты это будет условно 40000 - тогда ты можешь домножить на 18446744073709551615/40000 все значения растянув весь диапазон значений на 64 бита и в операциях использовать все доступные биты, а в double только на 52.
пример : 40000/32768 = 461 168 601 842 738 * 40000/(32768 * 461 168 601 842 738) , для внутренних операций делить обратно на множитель не требуется - приводить к единицам измерения нужно только при индикации, так что у тебя делится 461 168 601 842 738 * 40000/32768 - это деление будет точнее чем 13 112 589 990 684 * 40000/32768 для double. (edited)
но если ты не растягиваешь до макс значения double- у тебя еще меньше будет точность
поправил числа-мог запутать чуток

условно говоря операции делаешь не в герцах а в наногерцах
если тип позволяет
на пальцах вот ему расписал в слаке)
на 8байтах сложно понять. на 1-2 байтах так делали, когда fpu не был в cpu. и потому профита было больше
источник

m

mr.slavik in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
Oleg Makarikhin
на 8байтах сложно понять. на 1-2 байтах так делали, когда fpu не был в cpu. и потому профита было больше
да сколько бы ни было байт
источник

m

mr.slavik in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
нужно понимать что плавающая точка имеет меньше точность абсолютную
источник

m

mr.slavik in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
потому что использует меньше бит для представления числа
источник

m

mr.slavik in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
и если операции с числами одного порядка и динамический диапазон небольшой - не нужно использовать плавающую точку
потому что просто потеряешь точность и ничего полезного за это не получишь
источник

m

mr.slavik in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
источник

m

mr.slavik in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
просто даже записывая во float какое то значение и прочитав его обратно - прочитанное значение будет другое
источник

m

mr.slavik in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
источник

m

mr.slavik in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
такие вот дела)
источник

КК

Кирилл Картвелишвили... in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
ору
источник

m

mr.slavik in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
ну вообще - я бы уволил просто весь отдел который к этому коду отношение имел
источник

m

mr.slavik in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
тех кто видел что для денег используется float и ничего не сказал
источник

КК

Кирилл Картвелишвили... in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
сильно
источник

m

mr.slavik in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
потому что такие разработчики в таких делах реально ущерб наносят
источник

OM

Oleg Makarikhin in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
mr.slavik
и если операции с числами одного порядка и динамический диапазон небольшой - не нужно использовать плавающую точку
потому что просто потеряешь точность и ничего полезного за это не получишь
ну это там где целочисленная арифметика дает очень необходимую скорость, и в основном операции арифметические, я например видел это в движке duke nukem, вместо 360 градусов там 65536 направлений, да и в графике вообще.  и там когда  тригонометрия нужна - так она реализуется лукап-таблицами.
источник

m

mr.slavik in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
Oleg Makarikhin
ну это там где целочисленная арифметика дает очень необходимую скорость, и в основном операции арифметические, я например видел это в движке duke nukem, вместо 360 градусов там 65536 направлений, да и в графике вообще.  и там когда  тригонометрия нужна - так она реализуется лукап-таблицами.
это уже второй вопрос
источник

m

mr.slavik in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
арифметика с фиксированной точкой дает свои плюсы
источник