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

有一个表是有物品的重量、长度和直径,在查询时想要添加一列体积密度,于是用
“SELECT 表1.重量*4/(3.14*表1.直径*表1.直径*表1.长度) AS 体积密度
FROM 表1;”但是想对计算的体积密度限定两位小数,应该怎么修改?或者是其他的更简洁的实现方式也行,刚开始学习,希望大家解释的明白一些,谢谢

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

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

为什么用ROUND 函数之后数据全变0了呢?
体积密度之前还有几个数据 完整的数据是这样的 SELECT 表1.日期, 表1.加工车间, 表1.产品编号, 表1.产品直径, 表1.长度, 加工.重量, ROUND((表1.重量*4/(3.14*表1.产品规格*表1.产品规格*表1.长度)),2) AS 体积密度2
FROM 表1;

追答

请检查:
1)你的计算密度表达式是否正确,表中存放的数据是否有问题;
2)表一的“重量”,“产品规格”和“长度”这3个字段必须为数字且不得为空值(NULL)
另外“产品规格”和“长度”这两个字段不得为零,当然如果“重量”为零时结果也会为零

你也可以将你的ACCESS数据库发到我邮箱里,我替你检查一下问题出在那里(我的邮箱已经用百度HI发给你了)

收到你发来的数据库了,SQL代码没有错误。你在SQL代码中使用ROUND函数出现结果全部为0的原因是分子太小而分母太大,得出的结果远远小于0.005,这时使用ROUND函数保留两位小数,结果自然为0了。

为了证实这个观点,将你的代码密度表达式中的分子加大1千万倍后你就可以看到所使用Round函数保留两位小数点的效果了,请试运行下列代码:
SELECT 表1.日期, 表1.加工车间, 表1.产品编号, 表1.产品直径, 表1.长度, 加工.重量, ROUND((表1.重量*40000000/(3.14*表1.产品规格*表1.产品规格*表1.长度)),2) AS 体积密度2
FROM 表1;

解决办法:请检查重量、规格和长度的单位是否匹配,或者保留较多位数的小数

温馨提示:答案为网友推荐,仅供参考