usa il flottante o reale tipi di dati solo se la precisione fornita da decimale (fino a 38 cifre) è insufficiente
-
I tipi di dati numerici approssimativi (vedi tabella 3.3) non memorizzano i valori esatti specificati per molti numeri; memorizzano un estremamente vicino approssimazione del valore.(Technet)
-
Evitare di utilizzare colonne float o reali nelle condizioni di ricerca della clausola WHERE, in particolare gli operatori =e <>. È meglio limitare le colonne float e reali a> o
quindi generalmente scegliere Decimale come tipo di dati è la soluzione migliore se
- il tuo numero può rientrare. Precisione decimale è 10E38[~ 38 cifre]
- Lo spazio di archiviazione ridotto (e forse la velocità di calcolo) di Float non è importante per te
- è richiesto un comportamento numerico esatto, ad esempio nelle applicazioni finanziarie, nelle operazioni di arrotondamento o nei controlli di uguaglianza. (Technet)
- Esatto Tipi di dati numerici decimale e numerico - MSDN
- numerico =decimale (da 5 a 17 byte)
- verrà mappato su Decimal in .NET
- entrambi hanno (18, 0) come parametri predefiniti (precisione, scala) nel server SQL
- scala =numero massimo di cifre decimali che possono essere memorizzate a destra del punto decimale.
- money(8 byte) e smallmoney(4 byte) sono anche tipi di dati esatti e verranno mappati su Decimal in .NET e avranno 4 punti decimali (MSDN)
- Approssimativo Tipo di dati numerici float e real - MSDN
- reale (4 byte)
- verrà mappato su Single in .NET
- Il sinonimo ISO di real è float(24)
- flottante (8 byte)
- verrà mappato su Double in .NET
- Tutto esatto i tipi numerici producono sempre lo stesso risultato, indipendentemente dal tipo di architettura del processore utilizzata o dall'entità dei numeri
- Il parametro fornito al tipo di dati float definisce il numero di bit utilizzati per memorizzare la mantissa del numero in virgola mobile .
- Il tipo di dati numerico approssimativo di solito utilizza meno spazio di archiviazione e ha una velocità migliore (fino a 20 volte) e dovresti anche considerare quando sono stati convertiti in .NET
- Qual è la differenza tra Decimal, Float e Double in C#
- Decimale vs Doppia Velocità
- SQL Server - Mapping dei tipi di dati .NET (da MSDN)
fonte principale :MCTS Self-Paced Training Kit (Esame 70-433):Sviluppo di database Microsoft® SQL Server® 2008 - Capitolo 3 - Tabelle, tipi di dati e integrità dichiarativa dei dati Lezione 1 - Scelta dei tipi di dati (linee guida) - Pagina 93