一个关于C语言值的疑惑

我不太理解,也不知道到底该选择哪一个,感觉都对,又感觉有错误,希望能解释一下,谢谢哦

img

应该选择c
A.x=x * 100+0.5/100.0 这个是先*100了,显然不对
B.x=(x * 100+0.5)/100.0 这个第三位没有四舍五入,都会导致第二位加1,有个知识点是 浮点数本身的输出会四舍五入
C.x=(int)(x * 100+0.5)/100.0
D.x=(x/100+0.5) * 100.0 这个 0.5 * 100了

选B,这种题你直接去编译软件跑一下最好。A选项和D
选项错的比较明显。就不用解释了吧。b选项和c选项区别就在于要不要int转换,int转换会直接将小数部分去掉,显然不满足四舍五入的要求。(x*100+0.5)/100可以进行四舍五入的原因:保留两位小数,则我们要判断的就是小数点后面的第三位,根据进位的特点,只要大于0.5就进位,也就是加0.5除以100就可以了