Office中国论坛/Access中国论坛

标题: ACCESS 双精度的设置问题 [打印本页]

作者: ty_1029    时间: 2015-5-13 16:52
标题: ACCESS 双精度的设置问题
本帖最后由 ty_1029 于 2015-5-13 16:57 编辑

我先简单说一下,整体设计是利用客户端(ACCESS做窗体查询),服务器端是SQL2008

在ACCESS中,有3个文本框,都设置为小数位数2位,然后用代码计算3个文本框的逻辑关系,,部分代码如下

Dim ys As Double
Dim dz As Double
Dim xj As Double

ys = Trim(Me.ysje.Value)
dz = Trim(Me.dzje.Value)
xj = Trim(Me.xjje.Value)

If ys =dz + xj Then 。。。。。。
因为文本框里面的数字,都是货币金额,保留2位是合适的啊,,其次,明明数字合适,可就是执行的是ys<>dz + xj的代码后面的东西

我仔细实验了,,,代码没有问题
我估计是
Dim ys As Double
Dim dz As Double
Dim xj As Double
这个地方的问题,,不会设置了,,怎么把Double设置为2位有效数字,或者应该用那个字段类型啊,,求助
比如dz + xj=100.1,但ys=100.10
格式问题,,导致不一样


作者: todaynew    时间: 2015-5-13 17:19
没看懂说什么。


作者: ty_1029    时间: 2015-5-13 17:56
todaynew 发表于 2015-5-13 17:19
没看懂说什么。

比如ys = Trim(Me.ysje.Value)=460521.32
dz = Trim(Me.dzje.Value)=431042.72
xj = Trim(Me.xjje.Value)=29478.60
用EXCEL计算,,YS-DZ-XJ=0,
但由于我Dim ys As Double
Dim dz As Double
Dim xj As Double了,,
所以我在DEBUG计算了ys-dz-xj
显示结果为3.63797880709171E-11


问题应该出在Dim dz As Double这个部分



作者: todaynew    时间: 2015-5-13 20:20
本帖最后由 todaynew 于 2015-5-13 20:22 编辑
ty_1029 发表于 2015-5-13 17:56
比如ys = Trim(Me.ysje.Value)=460521.32
dz = Trim(Me.dzje.Value)=431042.72
xj = Trim(Me.xjje.Va ...


有这个情况。

如果要做逻辑表达式,可以Abs(ys-dz-xj)<10^-4




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3