C 语言编程新手。为什么此变量在 -= 操作后不更新?

问题描述 投票:0回答:1
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
}

不确定它是否与指针/内存地址/如何处理以及如何解决此问题有关。

c pointers
1个回答
0
投票

test
是一个
int
。您的
printf
格式代码
f
告诉它您通过了
double
。更改为:

printf("%.2d", test);

或保持不变并将

test
更改为
double
而不是
int

© www.soinside.com 2019 - 2024. All rights reserved.