Sql精度问题

jiajiaren jiajiaren 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区


@a,@b为已知的两个FLOAT类型的数,@c 为@a,@b中精度更大的数,@aunit为a的单位,@bunit为b的单位
DECLARE @a FLOAT,@b FLOAT,@c FLOAT,@aunit VARCHAR(2),@bunit VARCHAR(2)
SET @a=149003.44
SET @aunit='元'
SET @b=149003.4387
SET @bunit='元'


问题1:@a,@b 单位相等(按精度小的转换四舍五入判断两个值是否相等,所以@b转换后也为149003.44),但@b的精度高
,单位相等按原值输出:@c=149003.4387





DECLARE @a FLOAT,@b FLOAT,@c FLOAT,@aunit VARCHAR(2),@bunit VARCHAR(2)
SET @a=39065753.213
SET @aunit='万元'
SET @b=3906.575321
SET @bunit='亿元'

(假设已知亿元=10000*万元)
问题2:@a,@b 单位不相等,(按大单位先转换,然后按精度小的转换四舍五入判断两个值是否相等),但@a转换后的精度更高,所以@c为@a转换后的值
单位不相等按转换后的值输出:@c=3906.5753213


...全文

相关推荐

sql server中的decimal或者numeric的精度问题

何谓精度:最多可以存储的十进制数字的总位数,包括小数点左边和右边的位数。该精度必须是从 1 到最大精度 38 之间的值。默认精度为 18。 小数位数:小数点右边可以存储的十进制数字的最大位数。小数位数必须是从 0 到 p 之间的值。仅在指定精度后才可以指定小数位数。默认的小数位数为 0;因此,0 <= s <= p。最大存储大小基于精度而变化。 在c sharp中调用传递SqlParameter参数时也需要制定参数的精度和小数的位数,如下面的例子声明一个精度为18小树位数为2的decimal类型参数: 代码如下:SqlParameter parm = new SqlParameter(“@p

weixin_38659648

Sql Server datetime问题

SQL SERVER数据库用datetime类型的时候 需要注意的地方

weixin_38594687

SQL Server 中的数据类型隐式转换问题

主要介绍了SQL Server 中的数据类型隐式转换问题,本文给大家介绍的非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下

weixin_38624519

SQL Server 日期和时间的内部存储过程

在SQL Server的内部存储中,日期和时间不是以字符串的形式存储的,而是使用整数来存储的。这篇文章主要介绍了SQL Server 日期和时间的内部存储,需要的朋友可以参考下

weixin_38519060

基于Hibernate构建SQL数据库实现电力负荷数据采集与存储结合LSTM长短期记忆神经网络进行高精度时间序列预测分析引入随机因子变量优化算法以避免局部最优解问题最终实现电.zip

基于Hibernate构建SQL数据库实现电力负荷数据采集与存储结合LSTM长短期记忆神经网络进行高精度时间序列预测分析引入随机因子变量优化算法以避免局部最优解问题最终实现电.zip

weixin_43880734
评论 23
收藏 已收藏
分享
返回顶部
jiajiaren
MS-SQL Server 34,876 成员 254,635 内容