关于VB小数计算出错的问题

zjtzx 2003-08-20 09:40:36
在VB中进行大量数字运算过程中会出现很多小数的问题造成误差应该怎么解决?

样子大概简单点说是这样:11.1+222.2=233.2999999902313999

还出现一个671320.3+867250.6+80498.91=1619070这种问题

变量我是设成单精度或双精度都有这样问题,虽然我用ROUND进行保留2位小数,但有些情况下还是会有一定的误差,不知道是什么原因引起的,这些数字我是调用ACCES数据库的,请高手指教!谢谢
...全文
264 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
aiur2000 2003-08-20
  • 打赏
  • 举报
回复
k=format((i+j),"##.00") '保留两位小数
fishtrees 2003-08-20
  • 打赏
  • 举报
回复
Dim g as single,h as single,j as single
这样应该是定义了g,h,j三个单精度变量吧!
xsp 2003-08-20
  • 打赏
  • 举报
回复
Dim g, h, j As Single实际上只有j是single,而g和h是变体型
下面这样定义没问题。
Dim g As Double
Dim h As Double
Dim j As Double
victorycyz 2003-08-20
  • 打赏
  • 举报
回复
Access中用货币类型吧。
zjtzx 2003-08-20
  • 打赏
  • 举报
回复
还有双精度有时候也一样的问题存在,快疯了我怎么回事啊
zjtzx 2003-08-20
  • 打赏
  • 举报
回复
我只是不理解为什么单精度会出错?
Thanks4Help 2003-08-20
  • 打赏
  • 举报
回复
Dim g As Double
Dim h As Double
Dim j As Double
g = 671320.3
h = 867250.6
j = 80498.91
Text2.Text = g + h + j
zjtzx 2003-08-20
  • 打赏
  • 举报
回复
我现在做了个小试验
Dim g, h, j As Single
g = 671320.3
h = 867250.6
j = 80498.91
Text2.Text = g + h + j
则text2里显示结果是1619069.80625我晕
如果定义成LONG则结果是1619069.9
这些是什么问题啊????
Thanks4Help 2003-08-20
  • 打赏
  • 举报
回复
是不是定义变量的问题,我这里还好啊
Thanks4Help 2003-08-20
  • 打赏
  • 举报
回复
我还没有试过,试一下看看 UP
zjtzx 2003-08-20
  • 打赏
  • 举报
回复
顶顶

7,762

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧