Double даст вам 53 бита точности (52 бита в 64-битном значении, с неявным дополнительным битом для большинства значений).
Десятичное число даст вам 96 бит точности (в 128-битном значении).
То, что показатель степени в двоичном виде, а в последнем - десятичное, означает, что «круглые» числа в двойных числах могут быть более удивительными для пользователей, чем в десятичных.
С другой стороны, десятичная дробь плохо работает в тех случаях, когда вам нужно представлять бесконечность или не число.
Скорее всего, десятичная дробь будет служить намного лучше двойной. Если вам нужна еще большая точность, вы можете бросить свой собственный большой десятичный знак, комбинируя BigInteger
и число для хранения шкалы.