Android – 1除以2 = 0
我一直在尝试使用我的新IOIO for android,并且需要找到信号的频率。
所以我将信号转换为二进制,然后将1除以1之间的时间。 虽然当我这样做时,我发现我的输出为0。 然后我决定看看1/2给了我什么,令我惊讶的是它也给了0! 任何人都知道为什么会这样吗?
代码: private float frequency = 1/2;
这可能是使用Float.toString(frequency)
吗?
这是整数除法的一个例子。 尝试:
private float frequency = 1.0/2.0;
Java将执行1/2,产生0.5。 但是,由于Java认为这是对整数的操作(并且0.5不是整数),它会截断小数并只留下整数部分0。通过告诉Java使用浮点数(1.0对1),你告诉它保留中间计算的小数部分。
1和2是java中的整数。 如果您希望将它们显式解释为浮点数,则需要执行此操作。
private float frequency = 1f/2f;
如果你不在乎数学实际上是先双重完成,那么这个更容易阅读:
private float frequency = 1.0/2.0;
1和2是整数,它们返回一个整数。
在进行除法之前,尝试使用这些值创建两个浮点数。
你需要施展 。 这是更多信息
float myValue = (float) 1/2;
class Main { public static void main(String[] args) { float myValue = (float) 1/2; System.out.println("1/2 = " + myValue); } }
输出为1/2 = 0.5
这是整数除法(仅整数)。
尝试:
private float frequency = 1/2.0;
当你用整数做aritmetic时,结果变成一个整数也加上.0
所以
private float frequency = 1.0/2.0;
使用
private float frequency = 1F/2F;
如果要分割两个整数并且没有得到正确的输出,只需将计算的int
结果caste为float
,如下所示。
int b = 2; int a = 1; float out = (float) a / b; System.out.println(out);
这将产生0.5的输出