我有这个密码:
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;
如果
samplesPerPeriod
是int
,则除法为整数除法。也就是说你真的35/40
作为一个
int
,它是0
,然后转换成一个float
值0.0
。所以你需要在除法之前将samplesPerPeriod
转换成一个浮点数,为了安全和清晰,在分母中也使用float
的值。关于objective-c - 除以小于1的浮点数时,是无穷大?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8762165/