关于C语言算术算数表达式的问题

设变量x为float型且已赋值,则一下语句中能将x中的数值保留到小数点后两位,并将第三位四舍五入的是(C) 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 我都在VC++6.0上试过了,都是默认的6位小数啊!!

第1个回答  2019-06-28
x*100
先将x左移两位,原先小数点后第三位处于小数点后第一位的位置,加上0.5的目的是对该位进行四舍五入,小数点后一位若大于等于5,则往个位进位,否则不进位。在前面加上强制转换符int即对括号中的结果进行取整操作,即出去小数点后部分,然后再除以100.0而不是100的原因是进行强制转换,float
=
int/float,若除以100,则为int=int/int,除以100.0后,括号中的整数部分右移两位,记得到想要的结果
相似回答