当前位置:首页 » 编程语言 » sql计算后就是小数
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

sql计算后就是小数

发布时间: 2022-08-05 02:41:36

sql哪些数据类型能带小数又能计算的

浮点数据类型

浮点数据类型用于存储十进制小数。浮点数值的数据在SQL Server 中采用上舍入(Round up 或称为只入不舍)方式进行存储。所谓上舍入是指,当(且仅当)要舍入的数是一个非零数时,对其保留数字部分的最低有效位上的数值加1 ,并进行必要的进位。若一个数是上舍入数,其绝对值不会减少。如:对3.14159265358979 分别进行2 位和12位舍入,结果为3.15 和3.141592653590。

1、REAL 数据类型

REAL数据类型可精确到第7 位小数,其范围为从-3.40E -38 到3.40E +38。 每个REAL类型的数据占用4 个字节的存储空间。

2、FLOAT

FLOAT数据类型可精确到第15 位小数,其范围为从-1.79E -308 到1.79E +308。 每个FLOAT 类型的数据占用8 个字节的存储空间。 FLOAT数据类型可写为FLOAT[ n ]的形式。n 指定FLOAT 数据的精度。n 为1到15 之间的整数值。当n 取1 到7 时,实际上是定义了一个REAL 类型的数据,系统用4 个字节存储它;当n 取8 到15 时,系统认为其是FLOAT 类型,用8 个字节存储它。

3、DECIMAL

DECIMAL数据类型可以提供小数所需要的实际存储空间,但也有一定的限制,您可以用2 到17 个字节来存储从-10的38次方-1 到10的38次方-1 之间的数值。可将其写为DECIMAL[ p [s] ]的形式,p 和s 确定了精确的比例和数位。其中p 表示可供存储的值的总位数(不包括小数点),缺省值为18; s 表示小数点后的位数,缺省值为0。 例如:decimal (15 5),表示共有15 位数,其中整数10 位,小数5。 位表4-3 列出了各精确度所需的字节数之间的关系。

4、NUMERIC

NUMERIC数据类型与DECIMAL数据类型完全相同。
注意:SQL Server 为了和前端的开发工具配合,其所支持的数据精度默认最大为28位。

Ⅱ SQL 求平均值保留小数问题

把取到的平均值round或者truncate一下(在avg外面),如下:

createviewAbcourseas
selectCno,COUNT(Cno)asNumber,round(avg(Grade),2)asAvggrade,MAX(Grade)asTopGrade
fromSCgroupbyCno;

望采纳,谢谢

Ⅲ access中用SQL计算结果的小数位数

可以使用ROUND函数轻松搞定:

SELECT ROUND((表1.重量*4/(3.14*表1.直径*表1.直径*表1.长度),2) AS 体积密度
FROM 表1;

Ⅳ sql 乘除 保留小数点问题

cast(SUM(DATEDIFF(ss,opentime ,leavetime )/60.0/60.0) as numeric(18,2) )
就可以只保留两位小数了。

Ⅳ 为什么用sql的查询语句查出来的结果小数点位数会变

怀疑你定义的变量只取小数点后面两位,或者显示格式是…9999.99吧。

Ⅵ sql 查询结果怎么显示为小数

将人数类型定义为decimal

Ⅶ sql server 计算相除时怎么得到包含小数点的结果

除数或被除数有一个不是整型数据就可以。
如果是常数计算,直接加上小数点和0即可
执行一下,体会一下吧:
declare @a decimal(12,4),@b int,@c decimal(12,4)
select @a=10,@b=3,@c=3
select @a/@b,@a/@c,@a/3,@b/2.0,@b/2,@c/2,3/2,3.0/2

Ⅷ SQL Server2000自带计算机列让计算结果保留一位小数,该怎么做呢

设置一列为精度列 numeric(18, 1) 18为长度,1为小数点后保留1位,再与另一列做运算,得出的就是保留一位小数!

Ⅸ sql查询,如果是整数就不显示小数点,如果是小数就显示小数

create table #temp3
(
aNo varchar(50),
qty decimal(18,2)
)

insert into #temp3
select 'A',1
union
select 'B',1.1
union
select 'C',1.2

select * from #temp3
select aNo,
case when right(qty,2)='00'
then left(qty,len(qty)-3)
when right(qty,2)<>'00' and right(qty,1)='0'
then left(qty,len(qty)-1)
else '0' end
from #temp3

将你的表同参数代入最后的查询语句就可以得出结果了。