decimale vs doppio! - Quale dovrei usare e quando?

decimale vs doppio! - Quale dovrei usare e quando?

Per soldi, sempre decimale. Ecco perché è stato creato.

Se i numeri devono sommare correttamente o bilanciare, utilizzare decimale. Ciò include qualsiasi archiviazione finanziaria o calcoli, punteggi o altri numeri che le persone potrebbero eseguire manualmente.

Se il valore esatto dei numeri non è importante, usa double per la velocità. Ciò include calcoli di grafica, fisica o altre scienze fisiche in cui esiste già un "numero di cifre significative".


decimal per quando lavori con valori nell'intervallo 10^(+/-28) e dove hai aspettative sul comportamento basate su rappresentazioni di base 10 - fondamentalmente denaro.

double per quando hai bisogno di un parente accuratezza (cioè perdere la precisione nelle cifre finali su valori grandi non è un problema) su grandezze molto diverse - double copre più di 10^(+/-300). I calcoli scientifici sono il miglior esempio qui.

decimale, decimale , decimale

Non accettare sostituti.

Il fattore più importante è che double , essendo implementato come frazione binaria, non può rappresentare con precisione molti decimal frazioni (come 0.1) per niente e il suo numero complessivo di cifre è inferiore poiché è largo 64 bit rispetto a 128 bit per decimal . Infine, le applicazioni finanziarie devono spesso seguire modalità di arrotondamento specifiche (a volte obbligatorie per legge). decimal li supporta; double no.


System.Single / float - 7 cifre
Sistema.Doppia / doppia - 15-16 cifre
System.Decimal / decimal - 28-29 cifre significative

Il modo in cui sono stato punto usando il tipo sbagliato (alcuni anni fa) è con grandi quantità:

  • £ 520.532,52 - 8 cifre
  • £ 1.323.523,12 - 9 cifre

Finisci a 1 milione per un flottante.

Un valore monetario di 15 cifre:

  • £ 1.234.567.890.123,45

9 trilioni con un doppio. Ma con la divisione e i confronti è più complicato (non sono assolutamente esperto di numeri in virgola mobile e irrazionali - vedi il punto di Marc). La combinazione di decimali e doppi causa problemi:

Quando dovrei usare il doppio invece del decimale? ha alcune risposte simili e più approfondite.

Usando double invece di decimal per applicazioni monetarie è una micro-ottimizzazione:è il modo più semplice in cui la vedo.