Size: a a a

2020 May 29

A

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

A

Artyom in Yii Framework 2
к примеру.
источник

A

Artyom in Yii Framework 2
20 знаков после запятой 😅
источник

A

Artyom in Yii Framework 2
почему не 100?
источник

TS

Tagil Steel in Yii Framework 2
Нет принципиальной разницы. И там и там ошибкимогут появиться. Правда, во флоате они не только при делении появляются, а, например, при сложении.
источник

NO

Nex Otaku in Yii Framework 2
Tagil Steel
Вам никакой тип не прогарантирует абсолютной точности при делении, например.
Абсолютная не нужна. Но я не хочу видеть в своём коде, что 36 - 35.99 !== 0.01
источник

TS

Tagil Steel in Yii Framework 2
Artyom
20 знаков после запятой 😅
Берут минимальную денежную единицу - это 0.01
Берут Максимальное число транзакций, которое может быть за самый длинный период отчта - например, 10 лет.
Я видел системы, где больше миллиона транзакций в день, и это не предел.
Добавляют несколько порядков...
источник

NO

Nex Otaku in Yii Framework 2
Decimal эту проблему решает.
источник

A

Artyom in Yii Framework 2
вспонил картинку с пингвином, но не буду показывать =)
источник

TS

Tagil Steel in Yii Framework 2
Nex Otaku
Абсолютная не нужна. Но я не хочу видеть в своём коде, что 36 - 35.99 !== 0.01
А зачем?
Вас же не смущает, что вы увидите при делении 2 на 3?
источник

A

Artyom in Yii Framework 2
Tagil Steel
А зачем?
Вас же не смущает, что вы увидите при делении 2 на 3?
обычно делить ничего не нужно, ну это обычно.
источник

А

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

Д

Дмитрий in Yii Framework 2
Artyom
обычно делить ничего не нужно, ну это обычно.
Как это?
источник

А

Аль Пачино in Yii Framework 2
<?php
$a = (int) "29.40";
$b = (float) "24.20";
$c = (int) "24.20";
$d = (string) "24.20";

var_dump($a+$b);
var_dump($b+$a);
var_dump($a+$b);
var_dump($a+$d);


ответ
float(53.2)
float(53.2)
float(53.2)
float(53.2)
источник

A

Artyom in Yii Framework 2
если и нужно, то в бухглатерии округляют так же как это делает функция round
источник

TS

Tagil Steel in Yii Framework 2
Nex Otaku
Decimal эту проблему решает.
Дело не в формате хранения чисел, а в подходе - правильном выборе точности отображения и точности операций. Для конкретной задачи. Где-то и флоат подойдет.
источник

TS

Tagil Steel in Yii Framework 2
Artyom
если и нужно, то в бухглатерии округляют так же как это делает функция round
Не получится так.
источник

A

Artyom in Yii Framework 2
Tagil Steel
Дело не в формате хранения чисел, а в подходе - правильном выборе точности отображения и точности операций. Для конкретной задачи. Где-то и флоат подойдет.
Ну, я писал про флот, где-то сумму заказа посчитать и флот норм.
источник

Д

Дмитрий in Yii Framework 2
В бухгалтерии округляют далеко не по роунд. У меня мама бухгалтер. Там ад.
источник

Д

Дмитрий in Yii Framework 2
А мусора пидооасы. Штраф выписали.
источник