Quando não houver BigDecimal o melhor que considero é o long (inteiro de maior precisão). No caso do long mais trabalho encapsular as regras de manipulação de valores, mas evita uma dor de cabeça gigante que os tipos float e double podem causar.