Вообще, если говорить о деньгах, то крайне маловероятно что у вас будут доли копеек (центов и т.п.). Поэтому, можно хранить денежные суммы в виде пары "целое число" (long) + "код валюты" (целое или строка, код валюты ISO). К этой структуре, тогда, нужно иметь справочник валют, в котором будет точность валюты т.е. множитель для перевода из рублей в копейки, из долларов в центы, из евро в евроценты (1 к 100). А, например, у юаня этот множитель будет 1, так как эти денежные единицы не делятся на доли. У биткоина этот множитель будет 10^8 (сатоши).
В результате получаем возможность оперировать с денежными суммами как с целыми, полностью избегая ошибок округления.