设变量X为float型且已赋值,则以下语句中能将X中的数值保留到小数点后两位,并将第三位四舍五入的是A)x=x*100+0.5/100.0;B)x=(x*100+0.5)*100.0;C)x=(int)(x*100+0.5)/100.0;D)x=(x/100+0.5)*100.0;答案选C.不过我不清楚为什么,这种题目怎么做啊
參考答案:碰到这种题不要害怕,先看它问的是什么,选项设置也没有难为你,形式都差不多.
首先是float型的x,既然要保留小数点后两位,那就应该x*100,这样将他扩大100倍,比如x=1.2343,x*100=123.43,这样小数点后面一位就是需要舍入的.然后(int)x*100+0.5这样强制转换为一个整形数,起到了舍入的作用.我们知道,这种强制转换是不考虑精度的,在内存中就是把一个高字节的数强行缩短成低字节,所以精度会丢失.经过+0.5后再取整得到的就是舍入的值.最后再把这个数/100.0得到结果.
这种题你根据它的意思,分析选项的异同就可以了.