access 2016计算的字段四舍五入为零



我试图在access 2016中包含一个简单的密度计算,但如果输入维度(质量或球体直径)<0.5。该字段适用于较大的维度,所以我假设较小的值在某个地方被四舍五入为0,但我不知道在哪里。

对于我表中的输入,我有字段名称"绿色质量"、"绿色极"one_answers"绿色赤道",其中每个字段的数据类型都设置为"数字",字段大小设置为"单个"(相对于双位数或十进制),小数位数设置为4位

结果密度显示在"表观绿色密度"字段中,其中数据类型设置为"计算",结果类型设置为为"单个",小数位数设置为4位。

在查看了各种访问论坛和网站后,我很确定我想使用单或双作为字段大小,但我也尝试过十进制、字节和整数,我一直得到0。

有人能解释为什么这不起作用吗?

方程式如下。这有点复杂,因为它是一个由三部分组成的If语句(如果给定了球体的尺寸,则计算球体的密度,如果给定了圆盘的尺寸,计算圆盘的密度,则计算立方体的尺寸…)所有三种情况都适用于大尺寸(>0.5),但所有3种情况都导致尺寸<0.5.

IIf([GreenPole],[GreenMass]/(3.14159265359/6*2.54^3*(([GreenPole]+[GreenEquator])/2)^3),IIf([GreenDia],([GreenMass]/(3.14159265359*([GreenDia]/2)^2*[GreenHeight]*2.54^3)),IIf([GreenLength],[GreenMass]/([GreenLength]*[GreenWidth]*[GreenThickness]*2.54^3),0)))

球体密度方程的第一部分是:

`IIf([GreenPole],[GreenMass]/(3.14159265359/6*2.54^3*(([GreenPole]+[GreenEquator])/2)^3),0)

Oliver Jacobt Descombes让我朝着正确的方向开始。我在编码方面没有太多经验,但我认为发生的事情是,在我的IIf语句中识别的字段以某种方式被转换为布尔或是/否字段,任何小于0.5的字段都被四舍五入为否,然后truepart的结果为0。

我将代码修改为:

IIf([GreenPole]>0,[GreenMass]/(3.14159265359/6*2.54^3*(([GreenPole]+[GreenEquator])/2)^3),0)

现在一切都正常了。(我还将第二和第三IIf状态修改为IIf([GreenLength]>0IIF([GreenDia]>0。)

最新更新