设变量n为float型,m为int类型,则以下能实现将n中的数值保留小数点后两位,第三位四舍五入运算的表达式是(B)A.n=(n*100+0.5)/100.0B.m=n*100+0.5,n=m/100.0C.n=n*100+0.5/100.0D.n=(n/100+0.5)*100.0为什么这题是选B啊,弄不明白了
推荐回答
因为B是正确的。n是浮点数,乘100+0.5后,若原先小数第三位>=5,则+0.5后就向前进位了;否则不进位,赋给整型m后,小数部分丢弃,达到了四舍五入的目的;再除以100是恢复原数的大小。比如:n=3.1415→m=n*100+0.5=314.15+0.5=314.65→314。n=314/100.0=3.14。这是不进位的情况;n=3.1455→m=n*100+0.5=314.55+0.5=315.05→315。n=315/100.0=3.15。这是有进位的情况。选项A能四舍五入,但不能保留2位小数;选项C操作的不是小数后第三位而是第五位了;选项D操作的不是小数后而是操作到小数点前面去了……