作者kisha024 (4545454554)
看板Database
標題Re: [SQL ]請問MSSQL CONVERT FLOAT 轉換型態到字 …
時間Sun Jul 1 15:54:39 2018
※ 引述《m16ops ()》之銘言:
: ※ 引述《Aarlex (Aarlex)》之銘言:
: : A = 1230000010100
: : CONVERT(VARCHAR,A)
: : 得到的結果是 1.230000010100 的科學符號表示方式
: : 造成必須要擷取第一個CHAR 以及第三個CHAR之後的,再合併~
: : 請問有沒有方法可以將他轉成 1230000010100.000... 的字串?
: 如果沒記錯 應該是 先對A做ROUND 然後再CONVERT
: LIKE THIS
: CONVERT(VARCHAR,ROUND(A,X)) X代表要取到小數底下第幾位
不好意思 我也有同樣的問題 float轉字串
爬了文 發現10年前 就有人發問了 也解答了
但是 我先round再轉 還是會得到科學符號
請問 還有其他方法嗎? 謝謝
p.s. SQL SERVER 版本是2012
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 60.251.146.64
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Database/M.1530431682.A.C76.html
1F:推 cutekid: 要不要舉幾個例,input是什麼,希望結果又是什麼,好幫忙 07/01 16:20
希望float是什麼 轉出來就是什麼
float是98765432 round後再轉成字串卻是 9.87654e+007
float是9999.8888 round後再轉成字串卻是 9999.89
2F:推 cutekid: 希望到小數第幾位呢 07/01 21:19
請問 有任何位數的做法嗎? 某個欄位的type是float 到底會存什麼值進去 也不知道
3F:推 funk6478: 用STR函數去轉 我測試沒問題 07/02 14:49
謝謝 但我測試仍然不行
4F:→ smlboby: 偷吃步:rtrim(8967575457.546677) 07/03 09:22
5F:→ smlboby: 偷吃步失敗,還是參考cutekid大大的format解法比較好 07/03 10:23
6F:→ funk6478: STR會不行是沒有設小數的位數吧 07/04 18:16
7F:→ funk6478: str([欄位],總長度,小數位數) 07/04 18:17
8F:→ funk6478: 也可以用STR([欄位],len([欄位]),len([欄位])) 07/04 18:18
10F:→ funk6478: 我忘了float不能直接用len抓長度 還是要輸入長度 07/04 18:41
是我疏失 未明查STR正確用法 不好意思
STR的確可以 效果跟先轉decimal再轉varchar差不多 但STR可以少轉一次
STR和先轉decimal再轉varchar 都有相同的問題 就是要先預估小數位數
估得太小 結果可能與預期不符
估得太大 小數點後面會有多餘的0
目前看來 使用format會比較好
https://webptt.com/m.aspx?n=bbs/Database/M.1530523341.A.0F7.html
※ 編輯: kisha024 (60.251.146.64), 07/06/2018 10:10:40