Quale tipo (in virgola mobile o decimale) viene utilizzato al meglio per archiviare i prezzi in un database mysql?Galleggiante o decimale per i prezzi?
risposta
I galleggianti non sono esatti e possono introdurre errori di arrotondamento cumulativi. Decimal è il formato migliore per le informazioni finanziarie che devono essere esatte.
Decimale non è esatto - ma non è esatto in un modo che ci aspettiamo. –
Se il significato del commento di Michael non è chiaro, si prega di vedere la sua risposta qui sotto. – MaxVT
per i calcoli finanziari usano decimale
Secondo IEEE 754 carri erano sempre binari, solo le nuove IEEE 754R formati decimali definito standard. Molte delle parti binarie frazionarie non possono mai eguagliare la rappresentazione decimale esatta. Qualsiasi numero binario può essere scritto come m/2^n (m, n interi positivi), qualsiasi numero decimale come m/(2^n * 5^n). Poiché i binarys sono privi del fattore primo 5, tutti i numeri binari possono essere esattamente rappresentati da decimali, ma non viceversa.
0.3 = 3/(2^1 * 5^1) = 0.3
0.3 = [0.25/0.5] [0.25/0.375] [0.25/3.125] [0.2825/3.125]
1/4 1/8 1/16 1/32
Così, per i calcoli finanziari utilizzano decimale non galleggiare
Si prega di utilizzare BigDecimal, in quanto è il migliore per i prezzi, dal momento che pochi centesimi vengono arrotondati correttamente al dollaro.
Joshua Bloch consiglia BigDecimal.
Vedete un tag "java" da qualche parte? –
@ Michael mi hai preso !! . Io uso per cercare nuovi filtri per le domande di java, quindi ho questa domanda. –
Quando memorizziamo un numero in float non salviamo il numero esatto, è un'approssimazione. La parte intera ottiene la priorità e la parte frazionaria è simile alla dimensione del testo. Quindi se hai calcoli e hai bisogno di risultati accurati usa Decimal.
prezzi sono valori decimali, e calcoli su di essi sono tenuti a comportarsi come frazioni decimali quando si tratta di arrotondamenti, letterali, ecc
Questo è esattamente quali tipi decimali fanno.
I galleggianti sono memorizzati come frazioni binarie, e lo fanno non si comportano come frazioni decimali - il loro comportamento spesso non è quello che le persone usano per calcolare la matematica decimale. Leggi The Floating-Point Guide per spiegazioni dettagliate.
Per i valori di denaro, non utilizzare mai mai tipi di float binari, soprattutto se si dispone di un tipo di decimale perfettamente valido disponibile!
- 1. C# galleggiante alla conversione decimale
- 2. Firebird - che è più adatto per i calcoli dei prezzi: decimale o numerico
- 3. Come rimuovere decimale dai prezzi Magento-1?
- 4. RegEx per i prezzi?
- 5. Decimale decimale per i punti specificati
- 6. ottenere la parte decimale di un galleggiante numero
- 7. Galleggiante pad python
- 8. virgola decimale o virgola decimale in Android
- 9. Doppio o galleggiante - routine di ottimizzazione
- 10. Esistono API per i prezzi dei servizi Web Amazon?
- 11. Galleggiante galleggiante di precisione in Python
- 12. MySQL: tipo di colonna preferito per i prezzi (del prodotto)?
- 13. Diverso risultato di modulo e interger Divison per galleggiante e decimale
- 14. dump hex galleggiante in C++
- 15. pitone confronto decimale
- 16. API per Fetch prezzi del gas
- 17. Numero intero o numero decimale
- 18. per confrontare il doppio e il decimale se si esegue il doppio al decimale o al decimale per raddoppiare?
- 19. Algoritmo per schema di prezzi Fogbugz
- 20. codice .NET Firma Prezzi
- 21. Sono disuguaglianze galleggiante garantiti per essere coerenti
- 22. Variazioni dei prezzi di Bigquery?
- 23. valore era troppo grande o troppo piccolo per un decimale
- 24. Anorm parse galleggiante Valori
- 25. Aritmetica decimale in C o C++?
- 26. Doppio o decimale per i valori di latitudine/longitudine in C#
- 27. Come calcolare i ritorni da un vettore di prezzi?
- 28. decimale (s, p) o numero (s, p)?
- 29. "Per soldi, sempre decimale"?
- 30. Galleggiante crittograficamente sicuro
Quale database? Alcuni come Oracle hanno solo decimale – Mark
Vedi [Usa virgola mobile o decimale per l'ammontare del dollaro delle applicazioni contabili?] (Http://stackoverflow.com/questions/61872/use-float-or-decimal-for-accounting-application-dollar-amount "StackOverflow"). – Andrew
È per un database mysql ma se ci sono differenze tra gli altri mi piace ascoltarlo. – tom