浮点除法返回inf和有限值的情况是什么?

时间:2019-05-08 13:25:31

标签: c division inf

我已经编写了这段代码,但我无法理解为什么该浮点除法在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);
}

1 个答案:

答案 0 :(得分:1)

您只是被整数除法(200/1000 = 0)绊倒了。

更改float dt = atoi(args[2])/1000;-> float dt = atoi(args[2])/1000.0f;