Aleh
https://golang.org/src/math/big/decimal.go
Aleh
А можно просто это юзать ?
Aleksey
Деньги. В копейках, центах и т.д. в целом лучше
Aleh
Либу использовали до того как в го реализовали походу
Aleksey
https://m.habrahabr.ru/post/201066/
Aleksey
Ну и есть сайт, вспомнить не могу, где два флоат числа в сумме дробь дают
hamper 𓅝
Ну 0.3 + 0.7 != 1 обычно в большинстве языков.
Slava
эм
🎉
http://www.sql.ru/forum/412838/buhgalterskoe-okruglenie
Aleksey
Во http://0.30000000000000004.com/
Vasilii
Кто предлагает хранить деньги в decimal загуглите мальтийское скудо
Vasilii
Да и с кувейтским динаром засада
Kirill
чет я не догнал
Kirill
переводить проблематично или что?
Vasilii
Не зная какая валюта нельзя интерпретировать decimal в сумму
Vasilii
А с мальтийским скудо нельзя округлить до десятичных дробей с фиксированной запятоц
Vasilii
Я офигел малость, когда снял в банкомате 20 динаров в кувейте и получил смс что мне выдали 200.00 динаров
Vasilii
Вместо 20.000
Kirill
лол
Andrey
иногда цены просто _не_могут_быть_целым_ числом. Поэтому совет считать деньги целыми числами не универсален.
Vladimir
Vladimir
Считай цены в копейках или центах
Andrey
это когда они очень маленькие
Andrey
меньше цента
Vladimir
Vladimir
Ну считай в микроцентах
Vladimir
Наноцентах
Vladimir
Пикоцентах
Vladimir
Кстати, какой кейс у микроцентов?
Andrey
и передавать потом эти пикоценты в стороннюю систему, которая принимает доллары?
Andrey
амазон, например
Vladimir
Aion
Vladimir
Andrey
Vladimir
Andrey
Чеб нет?
ну, это если она принимает, то конечно
Vladimir
Andrey
0,023?
Vladimir
Да
Vladimir
2300 миллицентов
Andrey
Внутри оно может хоть живым бухгалтером считать. Наружу оно выдаёт дробное число. "Наружу" - это не только монитор.
Vladimir
Vladimir
Напечатать такое без флоат легко
V
так разговор же про монгу был, там базовые числа умещают в 32 бита, что накладывает понятные ограничения при суммировании выше определенного значения
V
numberDecimal дает 128 бит в монге и там уже достаточно пофик считать в копейках или дробях
Andrey
И там придётся указывать 0,023 USD за Гб умноженный на количество часов и конечную сумму
Vladimir
Andrey
какой дадут, такой и используется
Andrey
Вариант с миллицентами приемлем для внутреннего применения. не буду с этим спорить
Vladimir
В случае того же Амазона у них вероятно свой биллинг
Vladimir
И он может принимать что им хочется
Vladimir
Ещё биллинг ч тем же успехом может принимать строку
Vladimir
И даже миллиценты интом
Andrey
Type: Double
Vladimir
Ну ок
Vladimir
Тем не менее делать рассчеты с деньгами в даблах глупо
Aion
Ну ок
Это апи отдает такой тип
Vladimir
Aion
Что там под капотом - для меня тайна
Vladimir
Вероятно инты
Vladimir
Ну так или иначе инты
Vsevolod
А что делают в случае деноминации?
heavycharged
кажется спутали демонизацию и деноминацию)
Vladimir
Тьфу, не так прочитал
Vladimir
Да
MOS2502
Никто так ответить не смог, спрошу еще раз пожалуй, как правильно привести слайс array1 []int к array2 []string?
Alexei
Lev
насколько это критичная задача, если ты не можешь просто обойти слайс и сконвертить?)
MOS2502
Не критичная, просто array1 []string = array2 []string работает легко и замечательно, а вот с подобной конструкцией, с типом int[] уже большие проблемы.
Vladislav
Lev
чет не понял аналогии)
Vladimir
MOS2502
просто думал, что подобная конструкция сработает array2 []string = strconv.Itoa(array1), но работает подобное только на единичных элементах