访问2016计算字段舍入为零

时间:2017-10-23 20:04:09

标签: ms-access

我试图在访问2016中包含一个简单的密度计算,但如果输入尺寸(质量或球体直径)<1,则表单返回值0。 0.5。该字段适用于较大的维度,所以我假设较小的值在整个过程中的某处被舍入为0,但我无法弄清楚在哪里。

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

生成的密度显示在“明显绿色密度”字段中,其中数据类型设置为“计算”,结果类型设置为“单个”,小数位数设置为4位。

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

任何人都可以解释为什么这不起作用?

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

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)

1 个答案:

答案 0 :(得分:0)

Oliver Jacot-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 ..)