VB输入以下公式:x = b * x + b * 602,输入b的值为0.9,输出x的值理应为5418,为什么VB输出的值是542?

都快崩溃了,到底是为什么?公式没任何错误!不光如此,我输入b的值为0.5,口算也能得出x的值是602,结果VB居然给出301!到底是怎么回事??

程序中的表达式与数学中的方程式不是同一个概念,请牢记!!!

x尚未赋值前它的默认值为0,也就是说 x = b * x + b * 602 中的第二个x它的值是0!

因此当b=0.9时:

x = b * x + b * 602 = 0.9 * 0 + 0.9 * 602 = 0 + 541.8 = 542(取整)

当b=0.5时:

x = b * x + b * 602 = 0.5 * 0 + 0.5 * 602 = 0 + 301 = 301

如果在这时候再次执行这个赋值语句,则第二个x的值就是301了:

x = b * x + b * 602 = 0.5 * 301 + 0.5 * 602 = 150.5 + 301 = 452(取整)


补充说一下:

在数学中,像 x = x + 1 这样的等式是永远不可能成立的对吧?但是在电脑程序中,这是一个正确的赋值语句,意思是x在原有值的基础上再加1,比如说x原来的值是3,那么经过 x = x + 1 后,x的值就变为4

追问

十分感谢你耐心的解答,我现在懂了,感激不尽!

温馨提示:内容为网友见解,仅供参考
无其他回答

...602,输入b的值为0.9,输出x的值理应为5418,为什么VB输出的值是542...
x尚未赋值前它的默认值为0,也就是说 x = b * x + b * 602 中的第二个x它的值是0!因此当b=0.9时:x = b * x + b * 602 = 0.9 * 0 + 0.9 * 602 = 0 + 541.8 = 542(取整)当b=0.5时:x = b * x + b * 602 = 0.5 * 0 + 0.5 * 602 = 0 + 3...

相似回答