C语言保留两位小数的问题

2025-06-28 11:17:2569 次浏览

最佳答案

你给的代码是有错误的,但你说运行结果是0.00000,我暂且认为你的代码是这样的:

#include  

double a = 0.9876;

int main(void)

{

printf("%f", (int)((a + 0.005) * 100) / 100);

return 0;

}

((0.9876 + 0.005) * 100) / 100) 的结果是0.9926。因为 (int) 强制转换使0.9926取整,变成整型数字0。又因为“%f”的转换说明要求输出浮点数,程序给0后补零,变成0.000000。

你的题目是“C语言保留两位小数的问题”,想给该程序结果保留两位小数,应将代码改成:

#include  

double a = 0.9876;

int main(void)

{

printf("%.2f", ((a + 0.005) * 100) / 100);

return 0;

}

“%.2f”就是输出结果为保留小数点后两位的浮点数。但这里不是四舍五入,是直接截取。

声明:知趣百科所有作品均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请在页面底部查找“联系我们”的链接,并通过该渠道与我们取得联系以便进一步处理。