1/3小数位问题

菜鸟之GrowUP 2016-12-01 11:08:04
现在遇到一个问题,简单的计算1/3,不管怎么设置运算后的结果只有6位有效的结果,如果我现在需要保存8位10位,这怎么设置,是不是SQL的运算环境有相应的配置

SELECT CONVERT(NUMERIC(38,10), 1.0/3.0)
--0.3333330000

SELECT CONVERT(REAL,1.0/3)
--0.333333

SELECT CAST(CAST(1 AS DECIMAL)/CAST(3 AS DECIMAL) AS DECIMAL(18,6))
--0.333333


SQL的服务器属性这我看了,是初始状态的38位


请教还有哪里有相应的设置还是我的计算方式不对?
...全文
109 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
中国风 2016-12-01
  • 打赏
  • 举报
回复
SELECT CONVERT(NUMERIC(38,10), 1.0/CAST(3.0 AS NUMERIC(38,10))) --只能这样处理,在除数先转换
菜鸟之GrowUP 2016-12-01
  • 打赏
  • 举报
回复
引用 3 楼 roy_88 的回复:
SELECT CONVERT(NUMERIC(38,10),
CAST(1.0 AS decimal(18,8))
/3.0) --只能这样处理,在除时先转换
感谢感谢!
中国风 2016-12-01
  • 打赏
  • 举报
回复
SELECT CONVERT(NUMERIC(38,10),
CAST(1.0 AS decimal(18,8))
/3.0) --只能这样处理,在除时先转换
菜鸟之GrowUP 2016-12-01
  • 打赏
  • 举报
回复
引用 1 楼 roy_88 的回复:
精度、小数位数和长度
https://technet.microsoft.com/zh-cn/library/ms190476.aspx


谢谢大板这么晚的回复,看这小数位取的最大是6位,有什么设置能让这个小数位超过6位吗?
中国风 2016-12-01
  • 打赏
  • 举报
回复

22,301

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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