如何将字符串转换成数值

yanele 2012-10-08 09:59:31
有这样一列字符类型,如何转换成数值类型,每个值不用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
...全文
232 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
yanele 2012-10-08
  • 打赏
  • 举报
回复
那直接用:CAST(列名 AS FLOAT)
就不需要自定义那个什么去后面0值的函数了,反而多此一举.
-Tracy-McGrady- 2012-10-08
  • 打赏
  • 举报
回复

CAST(列名 AS FLOAT)
yanele 2012-10-08
  • 打赏
  • 举报
回复
可以网上说:浮点数不是精确值,所以使用它们会导致舍入误差.
以学习为目的 2012-10-08
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 的回复:]

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

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

想起来你直接是问过同样的问题,后来是自定义函数去掉后面的0.你只是需要把类型转换成数值型,但是又不要后面的0.那你用阿汤哥floor近似小数
汤姆克鲁斯 2012-10-08
  • 打赏
  • 举报
回复
其实下面的就可以,我想复杂了,O(∩_∩)O哈哈~

--> 测试数据:[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 ALL
SELECT 54665.65879 UNION ALL
SELECT 456.02046 UNION ALL
SELECT 654.265 UNION ALL
SELECT 40354.10203 UNION ALL
SELECT 145 UNION ALL
SELECT 6546463
--------------开始查询--------------------------

SELECT * FROM [tb]
SELECT CAST(col AS FLOAT) FROM [tb]

----------------结果----------------------------
/*
(无列名)
112.3
54665.65879
456.02046
654.265
40354.10203
145
6546463
*/
yanele 2012-10-08
  • 打赏
  • 举报
回复
一两个值到不影响,写了一个查询,有很多记录行,有许多0值,有许多小数值,都保留几位小数的话,那单纯的0值看上去很累赘.

之前单独写了一个自定义函数,将小数点后无效的0值去掉了.但转成varchar类型了,又不便一统计.
汤姆克鲁斯 2012-10-08
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]

我不希望转成用0补齐小数位数.楼上朋友提供的函数都会用0补齐小数位数呀.
[/Quote]
晕看反了,为什么要去掉0呢,不影响展示计算效果
应该是想调整展示效果吧,前端程序写一个去0的函数,sql 也可以写,不过还是放在前端的好。
yanele 2012-10-08
  • 打赏
  • 举报
回复
我要得到的结果一样,只是类型是数值类型.
yanele 2012-10-08
  • 打赏
  • 举报
回复
我不希望转成用0补齐小数位数.楼上朋友提供的函数都会用0补齐小数位数呀.
以学习为目的 2012-10-08
  • 打赏
  • 举报
回复
转换为数值类型

使用

numeric(18,5)

decimal(18,5)
以学习为目的 2012-10-08
  • 打赏
  • 举报
回复
推荐三个函数你可以去查查资料看看



ROUND()

CEILING()

FLOOR()
kensouterry1 2012-10-08
  • 打赏
  • 举报
回复
ROUND函数可以指定需要四舍5入的小数位数!
汤姆克鲁斯 2012-10-08
  • 打赏
  • 举报
回复
decimal 去了解一下



seelct cast (col as decimal(18,5)) from tb

34,576

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧