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