本人愚昧,请朋友帮忙,

shaxue 2002-01-23 07:07:48
d=0
a1 as string
a2 as string
for i=1 to data1.recordset.recordcount
a1=data1.recordset("单重")
a2=data2.recordset("数量")
d=d+val(a1)*val(a2)
next i
其中val(a1)*val(a2)=类似xxxx.xx的形式,也就是说最多只有2位小数.
是不是没有问题?可是当到d=676365.59的时候,下一个d加上类似的xxxx.xx的时候却等于:679777.1899999,为什么?怎么解决?请帮忙,并解释一下.谢谢.
...全文
135 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
sippey 2002-01-23
  • 打赏
  • 举报
回复
货币型变量
shaxue 2002-01-23
  • 打赏
  • 举报
回复
我自己解决了,不过我觉得不是更好的方法:
d=0
a1 as currency
a2 as currebcy
for i=1 to data1.recordset.recordcount
a1=val(data1.recordset("单重"))
a2=val(data2.recordset("数量"))
d=d+a1*a2
next i
结果显示正常,数据一样只是没有了那么多的9。
Bardo 2002-01-23
  • 打赏
  • 举报
回复
计算时用Eval()函数
fuxc 2002-01-23
  • 打赏
  • 举报
回复
如果是SqlServer的话,不要用float 和 real
因float 和 real用于表示浮点数字数据的近似数字数据类型。浮点数据为近似值
用decimal(10,2)类似的精确数。
lihanbing 2002-01-23
  • 打赏
  • 举报
回复
用round函数

743

社区成员

发帖
与我相关
我的任务
社区描述
VB 版八卦、闲侃,联络感情地盘,禁广告帖、作业帖
社区管理员
  • 非技术类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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