float 除法返回 inf 和有限值是什么情况?
What's the case of float division returning inf and finite value?
我写了这段代码,我不明白为什么这个浮点数除法 returns inf
当 args[2] = 200
和 5.0
当 args[2] = 2000
时。这是因为我超出了某个小数位边界吗?
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
int main(int nargs, char **args) {
float t = atoi(args[1]);
float dt = atoi(args[2])/1000;
float nsamples = (t/dt);
printf("%f\n", nsamples);
return(0);
}
您刚刚被整数除法 (200 / 1000 = 0) 绊倒了。
更改 float dt = atoi(args[2])/1000;
-> float dt = atoi(args[2])/1000.0f;
我写了这段代码,我不明白为什么这个浮点数除法 returns inf
当 args[2] = 200
和 5.0
当 args[2] = 2000
时。这是因为我超出了某个小数位边界吗?
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
int main(int nargs, char **args) {
float t = atoi(args[1]);
float dt = atoi(args[2])/1000;
float nsamples = (t/dt);
printf("%f\n", nsamples);
return(0);
}
您刚刚被整数除法 (200 / 1000 = 0) 绊倒了。
更改 float dt = atoi(args[2])/1000;
-> float dt = atoi(args[2])/1000.0f;