Sql server 的float和real類型會產生科學計數法,如何消除科學計數法


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

-----------------------------

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM