以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 有小数位的减法也必须要用高精度小数吗? (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=74013) |
-- 作者:sky-18 -- 发布时间: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 -- 发布时间:2015/8/31 15:52:00 -- http://www.foxtable.com/help/topics/1829.htm
计算时临时转换为高精度c = CDec(b) - CDec(a) |
-- 作者:有点蓝 -- 发布时间:2015/8/31 15:53:00 -- 四舍五入到6位或者decimal代替 http://www.foxtable.com/help/index.html?n=1829.htm
|
-- 作者:sky-18 -- 发布时间:2015/8/31 16:05:00 -- 用高精度代替的话会不会让运算量太大? |
-- 作者:大红袍 -- 发布时间:2015/8/31 16:19:00 -- 以下是引用sky-18在2015/8/31 16:05:00的发言:
用高精度代替的话会不会让运算量太大?
看3楼,舍去后面的就行。 |