In SQL Server 2005 str()
si comporta in modo strano su alcuni valori float durante l'arrotondamento. Durante la ricerca in rete, ho trovato il codice qui sotto e le spiegazioni lì.SQL Server 2005: str (4.65,5,1) = 4.7, str (3.65,5,1) = 3.6?
select STR(4.65,5,1) -- it will give 4.7
select STR(3.65,5,1) -- it will give 3.6
ho avuto alcune spiegazioni here e here, ma non ha ottenuto nulla da lì (che sopra T-SQL tratto da una delle spiegazioni link)
Qualcuno potrebbe spiegare perché si comporta come questo?
spiegazione piacevole. Grazie. –
@ M.Kumaran: se pensi che questo sia una risposta, Mark accetta ... –
da BOL: "SQL Server considera n come uno dei due valori possibili: se 1 <= n <= 24, n viene trattato come 24. Se 25 <= n <= 53, n viene trattato come 53. " Non c'è FLOAT (n) in MSSQL, è un alias. Sotto tutto è REAL (precisione singola) o FLOAT (precisione doppia). Migliore cast TO DECIMAL (5, 1) invece di formattazione nel DB. La funzione STR restituisce VARCHAR. – wqw