Foxtable(狐表)用户栏目专家坐堂 → 有小数位的减法也必须要用高精度小数吗?


  共有3073人关注过本帖树形打印复制链接

主题:有小数位的减法也必须要用高精度小数吗?

帅哥哟,离线,有人找我吗?
sky-18
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:655 积分:5004 威望:0 精华:0 注册:2011/11/26 17:46:00
有小数位的减法也必须要用高精度小数吗?  发帖心情 Post By:2015/8/31 15:35:00 [只看该作者]

Dim a As Double
Dim b As Double
Dim c As Double
a = 93218.4
b = 100000
c = b - a
Output.show(c)
最后结果是 2153.60000000001。
结果明显是错的呀。
帮助上说double在做比较的时候会出现“1<> 1”的情况,但并没有说显示结果会出现这种错误啊。
但是换成高精度小数后结果就没问题了。
不过帮助文件上是不推荐一般的运算用高精度的啊。
莫非是我哪里没搞对。
求老师们指点

 回到顶部
帅哥哟,离线,有人找我吗?
Hyphen
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:5015 积分:25363 威望:0 精华:0 注册:2015/8/18 9:21:00
  发帖心情 Post By:2015/8/31 15:52:00 [只看该作者]

http://www.foxtable.com/help/topics/1829.htm

 

计算时临时转换为高精度c = CDec(b) - CDec(a)


 回到顶部
帅哥,在线噢!
有点蓝
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110567 积分:562725 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2015/8/31 15:53:00 [只看该作者]

四舍五入到6位或者decimal代替
http://www.foxtable.com/help/index.html?n=1829.htm

 回到顶部
帅哥哟,离线,有人找我吗?
sky-18
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:655 积分:5004 威望:0 精华:0 注册:2011/11/26 17:46:00
  发帖心情 Post By:2015/8/31 16:05:00 [只看该作者]

用高精度代替的话会不会让运算量太大?

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/8/31 16:19:00 [只看该作者]

以下是引用sky-18在2015/8/31 16:05:00的发言:
用高精度代替的话会不会让运算量太大?

 

看3楼,舍去后面的就行。


 回到顶部