作者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/cn.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/cn.aspx?n=bbs/Database/M.1530523341.A.0F7.html
※ 编辑: kisha024 (60.251.146.64), 07/06/2018 10:10:40