sql server数字转字符串出现科学计数法


在从excel往sql server导入数据,电话、编号等数字呈现float类型,然后向b表中insert后(phone为nvarchar)出现科学计数法,解决方法:需将float等数据类型转为标准的decimal类型后转nvarchar即可。一直觉得float和double类型在sql server和其他语言等日常编程中没有用途,而且容易造成麻烦(计算时出现近似值)等,建议使用decimal(18,2)。

convert(nvarchar(50),convert(decimal,phone))

 

 

 

declare @i float set @i=123456789
print 'test:'+convert(varchar(20),convert(int,@i))
输出:test:123456789

 

如果是有小数,那么我们要转换出小数位的话,可以转换成decimal,转换出的小数位数在定义decimal时指定。比如要输出4位小数,那么转换代码是:

 

declare @i float set @i=123456789.12
print 'test:'+convert(varchar(20),convert(decimal(18,4),@i))
输出:test:123456789.1200

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM