为什么最后结果是等于0呢
#include <stdio.h>#include <stdlib.h>
int main(void)
{
printf("一次性定期存五年,最后所得为%d\n", (10000 * (1 + 0.015 * 5)));
system("pause");
return 0;
} 在你的代码中,存在一个常见的问题:整数除法。在 C 语言中,当两个整数相除时,结果会向下取整,也就是说,小数部分会被舍弃。
在你的代码中, (10000 * (1 + 0.015 * 5))的计算是按照整数计算的。这里1和0.015 * 5都被当作整数来处理,因此0.015 * 5结果会被舍弃成0 ,最后整个表达式的结果就成了10000 * 1 = 10000 。
如果你想得到正确的结果,你需要把其中一部分作为浮点数来处理。在这个情况下,你应该用double或float数据类型来存储你的结果,并使用%f格式符来打印浮点数。下面是修正后的代码:
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
double result = 10000 * (1 + 0.015 * 5);
printf("一次性定期存五年,最后所得为%.2f\n", result);
system("pause");
return 0;
}
在这段代码中, result是一个double类型的变量,它会正确地计算并存储(10000 * (1 + 0.015 * 5))的结果,然后使用%.2f格式符来打印该浮点数,保留两位小数。
页:
[1]