No   double    non soddisferà le tue esigenze. 
 Se non fosse per aver bisogno di fare calcoli,   String    sarebbe meglio soddisfare le tue esigenze. 
 Questo lascia   BigDecimal   . Calcola più lentamente di   double    ma calcola fedelmente ogni 10 cifre di base. 
 Il problema con   double    è che il modo in cui viene visualizzato è un'approssimazione di ciò che memorizza. Visualizziamo   double    nella base 10 ma lo memorizziamo nella base 2. Questo va bene quando tutto ciò che rappresenta sono misurazioni di valori continui come la temperatura. Usalo per rappresentare valori decimali discreti di base 10 come il denaro e stai invitando  Ron Livingston  e  Richard Pryor  per rubarti i tuoi mezzi penny. 
 Sembra che anche   double    debba essere discreto. Dopotutto è memorizzato anche in uno e zeri. In realtà lo è. Ma la base 2 discreta e la base 10 discrete non sempre coincidono come posso mostrare con due righelli che dividono in pollici in modo diverso. Ogni valore di entrambi i righelli può essere rappresentato perfettamente nei nostri computer se   BigDecimal    rappresenta il righello superiore e   double    rappresenta il righello inferiore. Tuttavia, non è sempre possibile convertire perfettamente da uno all'altro. 
   
  
 Entrambi corrispondono a 1 pollice. Corrispondono a 1/2 pollice. Non corrispondono a 1/10 di pollice. Per arrivare a 1/10 devi dividere per 5.   double    sa solo come dividere per 2. 
 Questo peggiorare è che   double    cercherà di avvicinarsi all'1 / 10. E potrebbe anche arrotondare il display a dove sembra. 1 è lì dentro. Ma dal momento che non è realmente lì, l'importo che spende è solo in attesa di rovinare i tuoi calcoli. 
 Provare a   double    dei tuoi soldi è un problema.