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位


请教还有哪里有相应的设置还是我的计算方式不对?
...全文
130 5 打赏 收藏 转发到动态 举报
写回复
用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
  • 打赏
  • 举报
回复
基于LOS算法+反步控制的水下航行器AUVUUV三维路径跟踪控制研究(Matlab代码实现)内容概要:本文研究基于LOS(Line-of-Sight)算法与反步控制相结合的水下航行器(AUV/UUV)三维路径跟踪控制方法,并提供了完整的Matlab代码实现。通过构建水下航行器的动力学模型,结合LOS导引策略实现路径跟踪,利用反步控制方法设计控制器以保证系统稳定性与跟踪精度,有效应对海洋环境中的外部干扰与模型不确定性。文中详细阐述了控制算法的设计过程、稳定性分析及仿真验证,展示了在复杂三维路径下的良好跟踪性能。; 适合人群:具备自动控制理论、非线性控制基础及Matlab/Simulink仿真能力的研究生、科研人员及从事水下机器人控制开发的工程技术人员。; 使用场景及目标:①用于水下无人航行器路径跟踪控制系统的算法设计与仿真验证;②学习LOS导引法与反步控制在非线性系统中的综合应用;③为海洋机器人运动控制、自动驾驶等领域提供技术参考与代码实现模板。; 阅读建议:建议结合控制理论基础知识,逐步理解LOS算法的几何原理与反步控制的递推设计思想,重点分析Lyapunov稳定性证明过程,并通过Matlab代码调试与仿真实验加深对算法性能的理解。

22,298

社区成员

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

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