sybase 数据库 小数位取4位,问一下有什么函数可以实现吗?大虾们!!!!!

jpf4520 2010-12-03 02:23:35
我想把一个小数位数取4位用什么函数实现啊
比如10.100011111 取得的值为10.1000
类似截取的函数 Sybase的数据库有吗?
没有的话 怎么实现啊
...全文
480 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
jpf4520 2010-12-14
  • 打赏
  • 举报
回复
谢谢 大家了 这个问题我解决了 是用STR 这个函数
biabiasir 2010-12-10
  • 打赏
  • 举报
回复
楼上也是可以得到这种效果,还是仔细看问题吧,哎
  • 打赏
  • 举报
回复
楼主不要在这里叫板了。 我已经测试过很多次了。
sybase中没有oracle中的截断数字的函数。 sybase中的round 和 str 都是会四舍五入的。

解决的办法是利用数据类型的强制截断功能,结合convert函数进行转化使用。。

请看效果:


1> select convert(decimal(28,4), 10.100011111 )
2> go

-------------------------------
10.1000

(1 row affected)
1> select convert(decimal(28,4), 10.100091111 )
2> go

-------------------------------
10.1000

(1 row affected)
iihero 2010-12-09
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 biabiasir 的回复:]

你们这些人啊,不仔细看别人提的问题,人家要求的是:比如10.100011111 取得的值为10.1000 ,round(10.100011111,4)能行么?只有转换成字符格式才能得到想要的格式
[/Quote]

你有点吹毛求疵了,楼上各位其实已经回答了问题的关键。
为了显示最终四位小数,倒不一定非得要换成字符格式,那样只会更麻烦。

这是我的实验:
1> select convert(decimal(28,4), (round(10.100011111, 4)))
2> go

-------------------------------
10.1000

(1 row affected)
1>
biabiasir 2010-12-09
  • 打赏
  • 举报
回复
你们这些人啊,不仔细看别人提的问题,人家要求的是:比如10.100011111 取得的值为10.1000 ,round(10.100011111,4)能行么?只有转换成字符格式才能得到想要的格式
iihero 2010-12-04
  • 打赏
  • 举报
回复
当问题解决时,请及时结帖。
iihero 2010-12-04
  • 打赏
  • 举报
回复 1
select round(10.100011111, 4)
参考:
round (numeric, integer) 舍入 numeric 以使其具有 integer 个有效位数。正 integer 确定小数
点右边的有效位数;负 integer 确定小数点左边的有效位数。其结
果与数字表达式的类型相同,对于 numeric 和 decimal 表达式,其
结果的内部精度等于第一个参数的精度加 1,其标度等于 numeric
表达式的标度。
WWWWA 2010-12-03
  • 打赏
  • 举报
回复
select round(10.100011111,4)
ACMAIN_CHM 2010-12-03
  • 打赏
  • 举报
回复
round(10.100011111 ,4)

2,596

社区成员

发帖
与我相关
我的任务
社区描述
Sybase相关技术讨论区
社区管理员
  • Sybase社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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