sqlserver 查詢的 float 類型 如果是0.00000000001的話,會被顯示為1E-11,請問怎么才能讓查詢出的結果顯示為正常顯示方式而不是科學計數法?
答案:
float 和 real 用於表示浮點數字數據的近似數字數據類型。浮點數據為近似值;並非數據類型范圍內的所有數據都能精確地表示。
解決float科學計數的問題只能靠轉換,decimal(12,11)會自動補全到小數點后11位。
您可以試試這樣轉化: 先建一個測試表:
CREATE TABLE dbo.sci_notation ( num float ) INSERT INTO dbo.sci_notation VALUES (0.0000000001)
因為不清楚所有表中float的小數位,所以轉換成decimal盡量大點,我選了decimal(38,28),保留28位小數。先轉成varchar,然后對varchar進行去0操作。
select replace(rtrim(replace(convert(varchar,cast(num as decimal(38,28))),'0',' ')),' ','0') from dbo.sci_notation ----------------------------- (No column name) 0.0000000001 -----------------------------
