红星二锅头价格表53度:一个C语言问题

来源:百度文库 编辑:中科新闻网 时间:2024/04/28 13:08:06
设变量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得到结果.

这种题你根据它的意思,分析选项的异同就可以了.

一个浮点型变量只能保证的有效数字是7位。
比如x=1.234567,x*100=123.4567,加上0.5的作用就是四舍五入,这里简单说明一下,比如0<x<0.5,x+0.5<1.0,那么对(x+0.5)取整的话就可以得到0.最后再除一百就可以得到题目要求的值了!