c语言!!!!!!!!!!

大神可以把A,C选项解释一下吗,谢谢图片

c

3个回答

(x*100+0.5)得到的是放大100倍的一个小数,且如果千分位上大于等于5将自动在个位数加1
这样只要取得这个小数的整数部分就可以实现将小数点后第3位四舍五入,保留小数点后两位的
所以:
(int)(x*100+0.5)是得到小数的的整数部分,(int)(x*100+0.5)/100.0是得到原来大小的小数

这个好像是类型转换问题

float roundfloat(float val){
#if 0
float val = 37.777779;
float rounded_down = floorf(val * 100) / 100; /* Result: 37.77 /
float rounded_up = ceilf(val * 100) / 100; /
Result: 37.78 /
#endif
float nearest = roundf(val * 100) / 100; /
Result: 37.78 */
return nearest;
}

比较标准的做法如上面这样。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问