我一直在尝试使用我的android新IOIO,需要找到一个信号的频率。
所以我把信号转换成二进制,然后用1除以1之间的时间,虽然当我这样做的时候,我发现我得到的输出是0。然后我决定看看1/2给了我什么,令我惊讶的是它也给了0!有人知道为什么会这样吗?
代码:private float frequency = 1/2;
这可能与使用Float.toString(frequency)有关吗
发布于 2012-05-12 01:06:32
这是一个整数除法的例子。尝试:
private float frequency = 1.0/2.0;Java将执行1/2,其结果为0.5。然而,由于Java认为这是对整数的操作(而0.5不是整数),所以它将截断小数,只留下整数部分0。通过告诉Java使用浮点数(1.0与1),您告诉它保留中间计算的小数部分。
发布于 2012-05-12 01:07:48
1和2在java中是整数。如果你想让它们被显式地解释为浮点数,你需要这样做。
private float frequency = 1f/2f;如果你不关心这个数学运算是不是真的先做了double,那么这段代码就更容易读懂了:
private float frequency = 1.0/2.0;发布于 2012-05-12 01:06:40
这是整数除法(仅限整数)。
尝试:
private float frequency = 1/2.0;https://stackoverflow.com/questions/10555690
复制相似问题