Size: a a a

2020 May 29

A

Artyom in Yii Framework 2
если использовать echo то вполне вероятно что php сам округлит.
источник

NO

Nex Otaku in Yii Framework 2
😄 одного этого достаточно чтобы не любить float )
источник

NO

Nex Otaku in Yii Framework 2
что "хз что он там посчитает"
источник

NO

Nex Otaku in Yii Framework 2
источник

A

Artyom in Yii Framework 2
ну это проблема всех чисел типа аля с плавающей запято.
источник

A

Artyom in Yii Framework 2
скорее все при echo все ок будет.
источник

A

Artyom in Yii Framework 2
но это всегда работает.
источник

А

Аль Пачино in Yii Framework 2
Nex Otaku
Что выведет этот код?
php автоматически переводит в нужный тип данных.. то есть типизация. А если задать типизацию, ошибку не словит?
источник

A

Artyom in Yii Framework 2
я когда-то давно вникал в джаву, там вообще рекомендовалось при сравнении тех же числе выбирать определенную точность, в php чтобы так кто-то делал не встречал, хоть такая проблема вполне может быть и в нем.
источник

NO

Nex Otaku in Yii Framework 2
Нет там ошибки.
источник

A

Artyom in Yii Framework 2
хм, посмотрел в 7.4.6 даже с echo косячит.
источник

A

Artyom in Yii Framework 2
т.е. не округляет.
источник

NO

Nex Otaku in Yii Framework 2
Просто о таких вещах не принято рассказывать в универе... Да и на курсах программирования как правило обходят эту тему стороной. Только шишки набьёшь и понимаешь в чём разница. Я пока в  проде баги не словил, тоже внимания не обращал.
источник

TS

Tagil Steel in Yii Framework 2
Artyom
на флот можно забить когда чуть нужно посчитать что-то и небольшие погрешности не критичны, может какой-нибудь небольшой отчет, но словить прикол аля 100500.000012903210111 не такая уж и редкая ситуация что обычно оруглением любят костылить.
Делают с большим запасом по точности и никак иначе.
В той же 1с  DECIMAL(32,20) вроде.
В наших системах тоже 32, 20
источник

NO

Nex Otaku in Yii Framework 2
Он не косячит. Просто вот такой тип, который не гарантирует точности.
источник

A

Artyom in Yii Framework 2
Nex Otaku
Он не косячит. Просто вот такой тип, который не гарантирует точности.
я выразился как всегда не совсем корректно =\
источник

TS

Tagil Steel in Yii Framework 2
Nex Otaku
Он не косячит. Просто вот такой тип, который не гарантирует точности.
Вам никакой тип не прогарантирует абсолютной точности при делении, например.
источник

A

Artyom in Yii Framework 2
Tagil Steel
Делают с большим запасом по точности и никак иначе.
В той же 1с  DECIMAL(32,20) вроде.
В наших системах тоже 32, 20
а зафига 20 знаков после запятой?
источник

TS

Tagil Steel in Yii Framework 2
Artyom
а зафига 20 знаков после запятой?
Чтобы ошибка округления гарантированно была за пределами точности представления.
источник

NO

Nex Otaku in Yii Framework 2
Его надо было по другому назвать, как-нибудь approximate или rough )

И ввести "decimal" — точный тип десятичных чисел во все языки на базовом уровне.

Может и солдатики бы остались живы... https://www.iro.umontreal.ca/~mignotte/IFT2425/Disasters.html
источник