一组两位小数相加,会发现结果为三位小数???henji

wumou 2000-08-04 11:27:00
所有参与变量都是single
...全文
525 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
wulang 2000-08-05
  • 打赏
  • 举报
回复
用format
lty 2000-08-05
  • 打赏
  • 举报
回复
想起一个好办法,把数据说明为currency类型,可以精确地保留小数位数。
lty 2000-08-05
  • 打赏
  • 举报
回复
这是二进制表示十进制小数的误差问题,浮点数运算都有这个问题,以前的win31的计算器就有这种情况,并不希奇。如果这种结果你不能容忍,就应尽量避免使用浮点运算,否则还会当你要一个
4时,给你来个3.9999999,气疯了你。
lczddd 2000-08-05
  • 打赏
  • 举报
回复
同意,上述方法都可行,老兄,给分。。。呵呵!
无言无忌 2000-08-05
  • 打赏
  • 举报
回复
我经遇到的情况,我的方法是:

dim a as double,b as double,c as double

a=1234.56
b=789.23
c=int((a+b)*100+0.5)/100
U皮特U 2000-08-04
  • 打赏
  • 举报
回复
这有可能,因为浮点数是无法精确表示的,只是一个最近似的值,因此相加后会出现三位小数。
.00 + .00 就不会出现三位小数。
ta 2000-08-04
  • 打赏
  • 举报
回复
show a sample please!
ta 2000-08-04
  • 打赏
  • 举报
回复
show a sample please!
ta 2000-08-04
  • 打赏
  • 举报
回复
show a sample please?
wumou 2000-08-04
  • 打赏
  • 举报
回复
我将小数乘以100然后用整形相加,勉强解决问题,谁有好的解决办法我加分!!!

7,759

社区成员

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

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