我有这个密码:

 float f;
    float time;
    time=samplesPerPeriod/44;
    f=(1/time)*1000;

当samplesPerPeriod为35时,我在这个日志中得到无穷大:
NSLog(@"frequency:%f Hz",f);

我能不能除以一个比1小的数?
这与这是客观c类中的一个c函数有关吗?
谢谢。

最佳答案

你需要用浮点数

time=samplesPerPeriod/44;

所以相反
time=(float)samplesPerPeriod/44.0;

如果samplesPerPeriodint,则除法为整数除法。也就是说你真的
35/40

作为一个int,它是0,然后转换成一个float0.0。所以你需要在除法之前将samplesPerPeriod转换成一个浮点数,为了安全和清晰,在分母中也使用float的值。

关于objective-c - 除以小于1的浮点数时,是无穷大?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8762165/

10-13 04:09