我这样写的四舍五入第三位不对吗,为什么最后的结果只给我保留了整数位

咦额340 晚上好🌙🌙🌙
本答案参考ChatGPT-3.5
问题出在这一行代码上:
h=((int)h)/100;
这一行代码强制将h转换为int类型,并且将h除以100后再赋值给h,这样的处理方式只会保留整数位,而丢失小数位。
要实现四舍五入保留到小数点后第三位,你可以按照以下步骤进行修改:
下面是修改后的代码:
#include <stdio.h>
double fun(double h) {
h = h * 1000 + 0.5;
h = (int)h / 10.0;
return h;
}
int main() {
double a;
printf("Enter a: ");
scanf("%lf", &a);
printf("The original data is %.3f\n", a);
printf("The result %.3f\n", fun(a));
return 0;
}
这样修改后,你将得到的结果会保留到小数点后第三位并进行四舍五入。