轉換科學計數法的數值字符串爲decimal類型

在操作數據庫時,需要將字符串轉換成decimal類型。代碼如下:

 

select cast('0.12' as decimal(18,2));

select convert(decimal(18,2), '0.12');

 

當需要將科學計數法的數字字符串轉換成decimal時,這2種寫法都報錯:

msg 8114, level 16, state 5, line 1

error converting data type varchar to numeric.

 

select cast('0.12e+006' as decimal(18,2));

select convert(decimal(18,2), '0.12e+006');

 

網上查了很多資料都沒有找到答案。最後無意中發現float類型轉換成字符串時就會產生科學計數法的數值字符串:

select cast(cast(1234400000 as float) as varchar)

1.2344e+009

 

反向思維,那科學計數法的數值字符串應該可以轉換成float類型,再轉換floatdecimal

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章