前面发帖说错了,截取字符串的,新帖,也给30分

artak 2009-03-02 03:58:41
截取小数点后面1位数或者两位数,不要四舍五入,前面的也给分,大家继续,比如18.8577截取为18.85,谢谢
...全文
113 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
claro 2009-03-02
  • 打赏
  • 举报
回复
帮顶。
htl258_Tony 2009-03-02
  • 打赏
  • 举报
回复
select cast(floor(17.858*10)/10 as dec(18,1)) as num
num
--------------------
17.8

(所影响的行数为 1 行)

select cast(floor(17.858*100)/100 as dec(18,2)) as num

num
--------------------
17.85

(所影响的行数为 1 行)
lgx0914 2009-03-02
  • 打赏
  • 举报
回复
declare @data float
set @data=17.842323
select substring(cast(@data as nvarchar(10)),1 ,charindex('.',cast(@data as nvarchar(10)))+1 )
dawugui 2009-03-02
  • 打赏
  • 举报
回复
--一位
select cast(floor(18.8577 * 10)/10.0 as decimal(18,1))
/*

--------------------
18.8

(所影响的行数为 1 行)
*/

--两位
select cast(floor(18.8577 * 100)/100.0 as decimal(18,2))
/*


--------------------
18.85

(所影响的行数为 1 行)
*/
dawugui 2009-03-02
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 artak 的回复:]
那就1位数吧
[/Quote]
18.8577 -- ? 18.8?
artak 2009-03-02
  • 打赏
  • 举报
回复
那就1位数吧
dawugui 2009-03-02
  • 打赏
  • 举报
回复
[Quote=引用楼主 artak 的帖子:]
截取小数点后面1位数或者两位数,不要四舍五入,前面的也给分,大家继续,比如18.8577截取为18.85,谢谢
[/Quote]

截取小数点后面1位数或者两位数?

这个不行了,必须确定是一位还是两位.
artak 2009-03-02
  • 打赏
  • 举报
回复
补充一下,18.8577是数值类型的,不是字符串

34,590

社区成员

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

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