一个C语言问题

王朝知道·作者佚名  2009-04-02
窄屏简体版  字體: |||超大  
 
分類: 電腦/網絡 >> 程序設計 >> 其他編程語言
 
問題描述:

设变量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得到结果.

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

小贴士:① 若网友所发内容与教科书相悖,请以教科书为准;② 若网友所发内容与科学常识、官方权威机构相悖,请以后者为准;③ 若网友所发内容不正确或者违背公序良俗,右下举报/纠错。
 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航