11
在SQL Server 2005中,str()
在舍入時對某些浮點數值表現出奇怪的現象。在網上搜索時,我在那裏找到了下面的代碼和解釋。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
我得到了一些解釋here和here,但並沒有從那裏(即從以上的解釋之一採取T-SQL鏈接)得到任何
任何人都可以請解釋爲什麼它的行爲喜歡這個?
很好的解釋。謝謝。 –
@ M.Kumaran:如果您認爲這是答案,請將其標記爲... –
來自BOL:「SQL Server將n視爲兩個可能值之一,如果1 <= n <= 24,則n被視爲24。如果25 <= n <= 53,則n被視爲53.「 MSSQL中沒有FLOAT(n),它是一個別名。在一切下面是REAL(單精度)或FLOAT(雙精度)。更好地轉換爲DECIMAL(5,1)而不是在數據庫中格式化。 STR函數返回VARCHAR。 – wqw