张世来4610484 发表于 2020-3-6 00:18:06

表达式问题1

题目:设变量n为float型;m为int型,则以下能实现将n中的数值保留小数点后两位,
第三位进行四舍五入运算的表达式是_____
An=(n*100+0.5)/100.0
Bm=n*100+0.5,n=m/100.0
Cn=n*100+0.5/100.0
D n=(n/100+0.5)*100.0
没有看懂题目的意思,麻烦帮忙解答下,给出详细的解释,谢谢

墨羽岚 发表于 2020-3-6 11:42:12

https://wenda.so.com/q/1464171128722074

墨羽岚 发表于 2020-3-6 11:43:19

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操作的不是小数后而是操作到小数点前面去了……
页: [1]
查看完整版本: 表达式问题1