Я знаю, что этот стар, но почему, о, почему программисты все еще используют десятичное число... просто, используют целое число на 64 бита и определяют значение как центы (или тысячи) и не wholes. Все упрощает от этого.
т.е. вместо того, чтобы хранить 123,45 просто хранилища 12345, сделайте все вычисления на целых числах и когда необходимый подарок значение пользователю как 123,45
P.S. И по крайней мере на данный момент ни у кого не будет 2305843009213693952 центов или 23.058.430.092.136.939,52 wholes на их учетной записи.