Size: a a a

2020 May 26

v

vladimir in OctoberCMS
Это ведь сумма, верно понял?)
источник

JM

Johnny Maynne in OctoberCMS
vladimir
Это ведь сумма, верно понял?)
да. Мне нужно импорт сделать правильно.
источник

v

vladimir in OctoberCMS
Johnny Maynne
да. Мне нужно импорт сделать правильно.
Ну сумму в БД лучше в копейках хранить.
Так сумму не потеряешь и вычисления в целом быстрее будут если нужны отчеты по БД какие-то или суммирование.

А выводить уже форматируя как удобно
источник

JM

Johnny Maynne in OctoberCMS
vladimir
Ну сумму в БД лучше в копейках хранить.
Так сумму не потеряешь и вычисления в целом быстрее будут если нужны отчеты по БД какие-то или суммирование.

А выводить уже форматируя как удобно
соррян за тупой вопрос,но какой это тип ячейки?
источник

v

vladimir in OctoberCMS
Johnny Maynne
соррян за тупой вопрос,но какой это тип ячейки?
integer или unsignedInteger если не требуется возможность уводить сумму в минус
источник

JM

Johnny Maynne in OctoberCMS
vladimir
integer или unsignedInteger если не требуется возможность уводить сумму в минус
+++
источник

A

Axenia in OctoberCMS
johnnymaynne (0) увеличил карму LeMaX10 (1028.66)
источник

v

vladimir in OctoberCMS
Бывает если не важно хранят в столбце с типом decimal, он как раз для сумм создавался, но он медленее при суммировании и вычислениях средствами БД на больших объемах.
Да и сам float бывает при округлении копейки теряет ))
источник

JM

Johnny Maynne in OctoberCMS
ругается и на инт, и на флоат тупо только в стринг могу импортнуть
источник

v

vladimir in OctoberCMS
Банковские системы обычно сумму в копейках отдают, тот же тинькофф, яндекс касса.
Да и вроде в копейках просят чтобы присылали ))
источник

v

vladimir in OctoberCMS
Johnny Maynne
ругается и на инт, и на флоат тупо только в стринг могу импортнуть
А ты 1 000,00 конвертируешь в int?
источник

v

vladimir in OctoberCMS
Чтобы в копейки перевести, надо умножить на 100 и привести к int, чтобы обрезать .0

$price = (int) $externalPrice*100;
источник

JM

Johnny Maynne in OctoberCMS
есть такое дело) ткеперь как я понял надо при выводе уже в нужный формат приводить?
источник

JM

Johnny Maynne in OctoberCMS
vladimir
Чтобы в копейки перевести, надо умножить на 100 и привести к int, чтобы обрезать .0

$price = (int) $externalPrice*100;
+++
источник

A

Axenia in OctoberCMS
johnnymaynne (0) увеличил карму LeMaX10 (1029.66)
источник

v

vladimir in OctoberCMS
Johnny Maynne
есть такое дело) ткеперь как я понял надо при выводе уже в нужный формат приводить?
Да, делишь на 100 и любым форматтером форматируешь.
\NumberFormatter::formatCurrency($price, ‘RUR’) - например.
Или
\NumberFormatter::format($price)
источник

v

vladimir in OctoberCMS
Для удобства, можно аццесор и мутатор реализовать в модели, чтобы и в админке тоже в читаемом виде выводилось, но в базе хранилось в копейках
источник

JM

Johnny Maynne in OctoberCMS
отлично) спасибо, первый раз работаю с таким форматом чисел (3 недели всего изучаю октябрь,перед этим на wp делал) и уже перевробывал норм так) еще раз спасибо,что подсказал)
источник

v

vladimir in OctoberCMS
таким образом и общую сумму можно будет суммировать в копейках и в платежки передавать копейки в сумме.
ДА и в целом в int сложно будет потерять копейку при вычислениях + поиск, выборка по int быстрее чем по decimal, ну и математические операции тоже побыстрее будут.

По скорости на малых объемах экономия “на спичках”, но если понадобится фильтровать по ценам на большом каталоге integer будет побыстрее ))
источник

JM

Johnny Maynne in OctoberCMS
Во во,как раз по цене и буду фильтровать )
источник