作者retsamsu ()
看板Database
标题Re: [SQL ]请问MSSQL CONVERT FLOAT 转换型态到字 …
时间Mon Jul 2 15:08:13 2018
刚刚查了一下,然後测试一下,没问题
先看一下这个连结
https://bit.ly/2IIJ3Vg
CAST(CAST(@num AS DECIMAL(P,S)) AS VARCHAR(N))
Decimal 说明
https://bit.ly/2IIK7IK
先把你的 @num (float) 转成 decimal 再转成 varchar 就不会有科学符号了
http://sqlfiddle.com/#!18/9eecb/23305
然後你要动态调整 P 跟 S 的话,要用 Prepared Statements 去改 P 跟 S
https://bit.ly/2KDcZE0
※ 引述《kisha024 (4545454554)》之铭言:
: 标题: 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/cn.aspx?n=bbs/Database/M.1530431682.A.C76.html
: 推 cutekid: 要不要举几个例,input是什麽,希望结果又是什麽,好帮忙 07/01 16:20
: 如果float是98765432 round後再转成字串变 9.87654e+007
: 如果float是9999.8888 round後再转成字串变 9999.89
: 希望float是什麽 转出来就是什麽
: 推 cutekid: 希望到小数第几位呢 07/01 21:19
: 请问 有任何位数的做法吗? 某个栏位的type是float 到底会存什麽值进去 也不知道
: ※ 编辑: kisha024 (114.40.119.144), 07/01/2018 21:26:57
: 推 funk6478: 用STR函数去转 我测试没问题 07/02 14:49
--
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 218.161.3.178
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Database/M.1530515299.A.6FE.html
1F:推 cutekid: 推(Y) 07/02 17:24
2F:推 kisha024: 谢谢 转成decimal就可以了 07/04 17:10
3F:→ kisha024: 至於用Prepared Statements去改P跟S 我survey了一下 07/04 17:11
4F:→ kisha024: 还是没有头绪 07/04 17:12