Foxtable(狐表)用户栏目专家坐堂 → 什么情况小该用高精度小数


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

主题:什么情况小该用高精度小数

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


加好友 发短信
等级:三尾狐 帖子:655 积分:5004 威望:0 精华:0 注册:2011/11/26 17:46:00
什么情况小该用高精度小数  发帖心情 Post By:2022/1/26 3:05:00 [显示全部帖子]

Dim a As Single
Dim b As Single
Dim c As Single
a = 93218.4
b = 100000
c = b - a
Output.show(c)
结果等于:6781.602
结果错得很离谱!!!!!!!!!!
然后把数据类型改为double
Dim a As double
Dim b As double
Dim c As double
a = 93218.4
b = 100000
c = b - a
Output.show(c)
结果等于:6781.60000000001
结果仍然是错误的!!!
最后发现,换成高精度小数的时候就没问题了。
但关键是帮助文档上写明除非必要不要使用高精度小数,说会影响计算速度。
但是这么一个简单的一位小数的减法都不能算对我还能用double吗(single是肯定不能用了!)?或者只好对每次的计算结果都四舍五入?还是说把所有的小数数据类型都改成高精度小数?


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


加好友 发短信
等级:三尾狐 帖子:655 积分:5004 威望:0 精华:0 注册:2011/11/26 17:46:00
  发帖心情 Post By:2022/1/26 10:59:00 [显示全部帖子]

帮助文档上不是说不要轻易使用高精度小数吗?
我想所有的小数列都用高精度小数,但又怕帮助文档上说得万一极大影响计算的话就麻烦了。
同时我的数据列里面小数比较多,相互之间都有计算,就怕不用高精度会出来意想不到的问题。而且计算结果每次都要去舍入一次感觉也挺麻烦的。


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


加好友 发短信
等级:三尾狐 帖子:655 积分:5004 威望:0 精华:0 注册:2011/11/26 17:46:00
  发帖心情 Post By:2022/1/26 10:59:00 [显示全部帖子]

会不会出现项目运行速度慢的情况呢?

 回到顶部