C中的变量浮点除法
float division by variable in C
我正在计算工资 inflation
通过随机的 1 到 5% 的工资增长。
对于考试,2020 年 inflation 增加了 2%。我的工资是1000。
那么答案应该是 1000 * 1.02 = 1020.
所以我做了一个简单的代码
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(void) {
srand((unsigned int)time(NULL));
int inc_rate = (rand() % 5) + 1;
float num = (100 + inc_rate) / 100;
printf("%d \n", inc_rate);
printf("%f", 100 * (float)num);
return 0;
}
但是如果我运行它不能算1.02.
例如结果
2
100.000000
如何计算除以 C
如果两个操作数都是整数(舍去小数部分),则运算符“/”执行整数除法。这意味着表达式
(100 + inc_rate) / 100
如果 inc_rate 是 1 到 5 之间的整数, 将始终为 1。
试试这个:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(void)
{
srand(time(NULL));
int inc_rate = (rand() % 5) + 1;
float num = (100.0 + inc_rate) / 100.0;
printf("%d\n", inc_rate);
printf("%f\n", 100.0 * num);
return 0;
}
我正在计算工资 inflation 通过随机的 1 到 5% 的工资增长。 对于考试,2020 年 inflation 增加了 2%。我的工资是1000。 那么答案应该是 1000 * 1.02 = 1020.
所以我做了一个简单的代码
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(void) {
srand((unsigned int)time(NULL));
int inc_rate = (rand() % 5) + 1;
float num = (100 + inc_rate) / 100;
printf("%d \n", inc_rate);
printf("%f", 100 * (float)num);
return 0;
}
但是如果我运行它不能算1.02.
例如结果
2
100.000000
如何计算除以 C
如果两个操作数都是整数(舍去小数部分),则运算符“/”执行整数除法。这意味着表达式
(100 + inc_rate) / 100
如果 inc_rate 是 1 到 5 之间的整数,将始终为 1。
试试这个:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(void)
{
srand(time(NULL));
int inc_rate = (rand() % 5) + 1;
float num = (100.0 + inc_rate) / 100.0;
printf("%d\n", inc_rate);
printf("%f\n", 100.0 * num);
return 0;
}