objective-c - 除以小于 1 的 float 时无穷大?

标签 objective-c c

我有这段代码:

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

当 samplesPerPeriod 为 35 时,我在此日志中得到无限:

NSLog(@"frequency:%f Hz",f);

我不能除以一个小于 1 的数吗? 这与这是 objective-c 类中的 c 函数这一事实有关吗?

谢谢。

最佳答案

你需要为这条线使用 float

time=samplesPerPeriod/44;

所以改为做

time=(float)samplesPerPeriod/44.0;

如果 samplesPerPeriod 是一个 int,则除法将是整数除法。这意味着你真的在做

35/40

作为 int,它是 0然后 转换为 float0.0。因此,您需要在除法之前将 samplesPerPeriod 转换为 float ,并且为了安全和清晰起见,请使用 44.0float 值也是分母。

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

相关文章:

iphone - -(bool) 不返回

objective-c - 首字母缩略词的属性是否有任何 Objective-C/Cocoa 命名约定?

ios - objective-C :NSLinguisticTagger "new york"与 "New York"

c - C 中的双指针及其作用域

c - 使用 cygwin gcc 时出现 typedef 定义错误

objective-c - UIButton 在 UIScrollView 中不起作用

iphone - pushViewController 是否保留 Controller ?

c - 在作为值传递的结构地址上设置 NULL

c - 使用 scanf 读取后缀表示法计算器的表达式

c++ - 使用 openssl 以编程方式查找已协商的 TLS 版本