为了账号安全,请及时绑定邮箱和手机立即绑定

关于VB的Single运行问题,以下有具体的代码例子,麻烦帮忙看看!

关于VB的Single运行问题,以下有具体的代码例子,麻烦帮忙看看!

PIPIONE 2021-07-20 18:15:04
运行一下代码Private Sub Command1_Click()Dim n As Singlen = 0For s = 1 To 50n = n + 0.1Next sPrint nEnd Sub输出n的结果竟然是 4.999998 ,不是5才正确吗还有这个Private Sub Command1_Click()Dim s, x, y As Singlex = 0.1y = 0.1s = x + yPrint sEnd Sub输出的结果是.200000001490116 ,为什么后面会...?但是我把它改成Private Sub Command1_Click()Dim x, y, s As Singlex = 0.1y = 0.1s = x + yText1.Text = sEnd Sub就正常了。是什么原因??
查看完整描述

2 回答

?
跃然一笑

TA贡献1826条经验 获得超6个赞

不必纠结这些小问题,只要知道计算机里的浮点数都是用整数弄出来的就OK了。就像没有精确的3^(0.5)一样。通常使用的时候,考虑精度问题的话会自己进行控制,比如使用double,或者ground去调节精度。

查看完整回答
反对 回复 2021-07-25
?
白衣非少年

TA贡献1155条经验 获得超0个赞

浮点数的精度不要斤斤计较,如果想保持精度,使用ROUND函数控制即可。
例如:
Print Round(s,2)这样结果就是.02

查看完整回答
反对 回复 2021-07-25
  • 2 回答
  • 0 关注
  • 328 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信