quote:以下是引用emil128在2013-08-20 16:37:33的发言:
0侠举的例子很生动,可以很好的解释RND+和RND-的现实意义。
不过在2楼对RND指令的解释有所欠缺
“rnd是四舍五入(小数部分大于等于0.5,整数部分加1,小数部分舍去)”
小数部分等于0.5的时候,未必是整数部分加1,也可能是舍去。
我记得以前廖老师的帖子里有过讨论。
手册里的说法是这样的:
RND
该指令将 32 位 IEEE 浮点数转换成为一个 32 位整数(双整数),并将结果取整为最近的整数。
如果被转换数字的小数部分位于奇数和偶数结果中间,则该指令选择偶数结果。
所以
1.5 RND 结果是2
2.5 RND 结果也是2
你说的对,.5的这种情况比较特殊,如果是我们编程进行实数计算,能够正好是.5的情况比较少,所以我没有太注意,测试结果如你所说。