Чаще всего советуют хранить в int
Что за советы вредные такие. Любая СУБД позволяет указать точность числа после запятой, пользуйтесь этим.
Если не ошибаюсь для всех денег мира двух знаков после запятой достаточно. Биткоин это не деньги. )))
Ну и конечно, если в программе есть специфика типа валютных курсов, там точность считается и до 4 и до 6 знаков. Зачем все сваливать в кучу и делать универсальное решение. Определитесь что именно будет хранить ваша программа.
PS понятно как хранить денежные величины. А вот работать с ними лучше как десятичными дробями, а не как с числами с плавающей точкой. Хоть на бэкенде, хоть на фронте.