int main() {
int minutes = 245;
double hours = (double) minutes / (double) 60.0;
printf("%.2f\n", hours); // prints 4.08
hours -= (double) 3.0;
int test = hours * .5;
printf("%.2f", test); // also prints 4.08 despite -= operator
}
不确定它是否与指针/内存地址/如何处理以及如何解决此问题有关。
test
是一个int
。您的 printf
格式代码 f
告诉它您通过了 double
。更改为:
printf("%.2d", test);
或保持不变并将
test
更改为 double
而不是 int
。