2楼的做法是对(10*x/y)这个项做了四舍五入,而我的做法是对(60-10*x/y)做四舍五入,这就是根本的区别。所以我说2楼关于四舍五入的算法是没错的。
另外这所以会有10*x/y前面是+运算可以,对-运算就不成立,是因为C语言对整形数的运算规则里小数点后面都是舍去的。所以(10*x/y)这项整形计算值<用浮点型运算值
另外我对7楼的算法也很感兴趣,试图去证明它的正确性,(y-1/2y)<0.5,最接近0.5的有效表达值这是成立的。
共同研究,呵呵。也请原创作者证明一下,好比说用数学归纳法。穷举不是个科学的验证方法 |