当前位置: 代码迷 >> Sql Server >> 怎么将字符串转换成数值
  详细解决方案

怎么将字符串转换成数值

热度:107   发布时间:2016-04-27 10:48:55.0
如何将字符串转换成数值
有这样一列字符类型,如何转换成数值类型,每个值不用0来补齐小数位数?
112.3
54665.65879
456.02046
654.265
40354.10203
145
6546463

不希望转成用0补齐小数位数.

112.30000
54665.65879
456.02046
654.26500
40354.10203
145.00000
6546463.00000

------解决方案--------------------
decimal 去了解一下


SQL code
seelct cast (col as decimal(18,5)) from tb
------解决方案--------------------
ROUND函数可以指定需要四舍5入的小数位数!
------解决方案--------------------
推荐三个函数你可以去查查资料看看

SQL code
ROUND()CEILING()FLOOR()
------解决方案--------------------
转换为数值类型

使用

SQL code
numeric(18,5)decimal(18,5)
------解决方案--------------------
探讨

我不希望转成用0补齐小数位数.楼上朋友提供的函数都会用0补齐小数位数呀.

------解决方案--------------------
其实下面的就可以,我想复杂了,O(∩_∩)O哈哈~
SQL code
--> 测试数据:[tb]IF OBJECT_ID('[tb]') IS NOT NULL DROP TABLE [tb]GO CREATE TABLE [tb]([col] NUMERIC(12,5))INSERT [tb]SELECT 112.3 UNION ALLSELECT 54665.65879 UNION ALLSELECT 456.02046 UNION ALLSELECT 654.265 UNION ALLSELECT 40354.10203 UNION ALLSELECT 145 UNION ALLSELECT 6546463--------------开始查询--------------------------SELECT * FROM [tb]SELECT CAST(col AS FLOAT) FROM [tb]----------------结果----------------------------/* (无列名)112.354665.65879456.02046654.26540354.102031456546463*/
------解决方案--------------------
探讨

一两个值到不影响,写了一个查询,有很多记录行,有许多0值,有许多小数值,都保留几位小数的话,那单纯的0值看上去很累赘.

之前单独写了一个自定义函数,将小数点后无效的0值去掉了.但转成varchar类型了,又不便一统计.

------解决方案--------------------
SQL code
 CAST(列名 AS FLOAT)
  相关解决方案