Сергей
ну возьми Fraction
во, дельный совет. сейчас попробую
Tishka17
только если вдруг у тебя число Pi повится и ты захочешь Pi/3*3/Pi получить ровно 1 - не приходи ко мне
Tishka17
или там arcsin(sin(0.9))
Tishka17
во, дельный совет. сейчас попробую
обещаешь что никогда такие вещи не будешь считать?
Je
1/3 * 3 = 1, верно? вот это я и хочу видеть а не 0.9(999999)
тебе для чего, какая-то бизнес-задача или просто из академического интереса?
Tishka17
да ладно)
повезло
Tishka17
вот только pi не настоящий
Сергей
тебе для чего, какая-то бизнес-задача или просто из академического интереса?
задача. клиент на калькуляторе посчитал, получил 0.350685, посчитал в столбик по математике пятого класса, снова получил 0.350685. И слышать не хочет про то, что питон так не умеет)
Сергей
ну а нефиг клиенту показывать неокругленный вывод
ему показывался как раз округленный, просто ошибка набегала так, что там пара рублей разницы с тонны появлялось
Tishka17
да ладно)
»> pi-3.141592653589793 0.0
Tishka17
упс
Anonymous
О народ, вопрос. может кто знает где можно про патерны почитать, чтото годное?
Tishka17
тоже будет ошибка набегать
Tishka17
короче если у тебя тольок деление и умножение, fractional подойдет
Tishka17
если будет что-то сложнее, увы
Tishka17
как повезет
Tishka17
»> (2**0.5)**2 2.0000000000000004
Сергей
ну возьми обычный калькулятор и проверь
именно, взяли обычный калькулятор и проверили. тыкнули, когда не сошлось
Артем
можно ещё 0.1+0.2
Tishka17
»> (Fraction(2)**0.5)**2 2.0000000000000004
Tishka17
неа
какой питон?
Сергей
Valera
Привет всем, можно ли как-то в редис добавить словарь? Пытаюсь так, но не выходит - r.sadd('name', my_dict)
Je
ему показывался как раз округленный, просто ошибка набегала так, что там пара рублей разницы с тонны появлялось
так, а зачем ты считаешь деньги во флоат? уходи от флоат в инт и считай в копейках, так нельзя?
Max
ему показывался как раз округленный, просто ошибка набегала так, что там пара рублей разницы с тонны появлялось
Ща бы юзать float для точных вычислений. Пиздец. Когда ж вы научитесь. Столько библиотек для работы с arbitrary precision, а вы всё за старое. И ещё питон у них потом виноват
Сергей
сам голову ломаю)
vvk
Почему Decimal не помог, я не понел?
Tishka17
php 7.3
php > echo (137.99999999999999**(1/3))**3; 138
Tishka17
он просто округляет по-другому
Сергей
нет. он просто работает с дабл
Tishka17
php > echo (137.999999999999**(1/3))**3; 138
Tishka17
вот даже ещё два знака убрал
Артем
php 7.3
там встроенное округление похоже. Сделай например ini_set('precision', 17); и посчитай 0.1+0.2
Tishka17
короче 1. В php возможно действительно дабл
Tishka17
2. в php встроенное окрегление по-другому
Сергей
все просто
Сергей
вот php
Сергей
а вот питон.
Сергей
питон
Сергей
php
Max
нет. он просто работает с дабл
double - это тот же float, только бит в нём больше. Использовать его для точных вычислений - ошибка, даже если в каких-то кейсах он не сбоит. Собрались, блин, специалисты по computer science
Сергей
ой все)
Артем
ой все)
попробуй ini_set('precision', 17); и посчитай 0.1+0.2
Александр
Там ещё есть отличный баг "а проект жив вообще?"
собственно я нашел проблему, если дата ранее 1970 года, то все падает =) по всей видимости, мир начал существовать всего 49 лет назад
Anonymous
Оффтоп Скиньте в лс ссылку на чат где можно пофлудить
vvk
Артем
+ а не /
Tishka17
а вот питон.
»> "%f"%(0.15586/12*27) '0.350685'
Tishka17
внезапно, да
Сергей
другое дело.
Tishka17
вместо repr взял str и все стало работать по-другому
Tishka17
тьфу, формат
Сергей
жаль только в больших расчетах сложно будет определить место и время где это нужно сделать
Tishka17
это нужно делать при выводе на экран
Pavel
короче 1. В php возможно действительно дабл
да зачем вы это обсуждаете, дайте человеку прочитать иеее754 и все вопросы сами отвалятся. In [4]: sys.float_info Out[4]: sys.float_info(max=1.7976931348623157e+308, max_exp=1024, max_10_exp=308, min=2.2250738585072014e-308, min_exp=-1021, min_10_exp=-307, dig=15, mant_dig=53, epsilon=2.220446049250313e-16, radix=2, rounds=1) если верить ieee754, в питоне тоже вполне себе double
Tishka17
это нихрена не влияет на точность
Tishka17
не мог найти это
Pavel
ну и да, вот бы на флоатах финансы-то считать
Tishka17
потому что он не понимает какая точность ему нужна
Tishka17
он хочет абсолютно точные значения
Tishka17
что возможно только в некоторых случаях
Сергей
ну и да, вот бы на флоатах финансы-то считать
вот именно. вообще не пойму, почему питонисты с опытом 8+ лет такой проект в наследство оставили
Pavel
что возможно только в некоторых случаях
ну еще можно изобрести десятеричную архитектуру