看板 Database 關於我們 聯絡資訊
※ 引述《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://www.ptt.cc/bbs/Database/M.1530431682.A.C76.html
cutekid: 要不要舉幾個例,input是什麼,希望結果又是什麼,好幫忙 07/01 16:20
希望float是什麼 轉出來就是什麼 float是98765432 round後再轉成字串卻是 9.87654e+007 float是9999.8888 round後再轉成字串卻是 9999.89
cutekid: 希望到小數第幾位呢 07/01 21:19
請問 有任何位數的做法嗎? 某個欄位的type是float 到底會存什麼值進去 也不知道
funk6478: 用STR函數去轉 我測試沒問題 07/02 14:49
謝謝 但我測試仍然不行
smlboby: 偷吃步:rtrim(8967575457.546677) 07/03 09:22
smlboby: 偷吃步失敗,還是參考cutekid大大的format解法比較好 07/03 10:23
funk6478: STR會不行是沒有設小數的位數吧 07/04 18:16
funk6478: str([欄位],總長度,小數位數) 07/04 18:17
funk6478: 也可以用STR([欄位],len([欄位]),len([欄位])) 07/04 18:18
funk6478: http://sqlfiddle.com/#!18/9eecb/23570 07/04 18:39
funk6478: 我忘了float不能直接用len抓長度 還是要輸入長度 07/04 18:41
是我疏失 未明查STR正確用法 不好意思  STR的確可以 效果跟先轉decimal再轉varchar差不多 但STR可以少轉一次 STR和先轉decimal再轉varchar 都有相同的問題 就是要先預估小數位數 估得太小 結果可能與預期不符 估得太大 小數點後面會有多餘的0 目前看來 使用format會比較好 https://www.ptt.cc/bbs/Database/M.1530523341.A.0F7.html ※ 編輯: kisha024 (60.251.146.64), 07/06/2018 10:10:40