Java Android-1除以2=0
我一直在尝试使用android的新IOIO,需要找到信号的频率。Java Android-1除以2=0,java,android,Java,Android,我一直在尝试使用android的新IOIO,需要找到信号的频率。 所以我把信号转换成二进制,然后用1除以1之间的时间。虽然当我这样做时,我发现我得到了0作为我的输出。然后我决定看看1/2给了我什么,令我惊讶的是,它也给了0!有人知道为什么会这样吗 代码: 专用浮点数频率=1/2 使用Float.toString(frequency)?这是整数除法的一个例子。尝试: private float frequency = 1.0/2.0; Java将执行1/2,这将产生0.5。但是,由于Java将其
所以我把信号转换成二进制,然后用1除以1之间的时间。虽然当我这样做时,我发现我得到了0作为我的输出。然后我决定看看1/2给了我什么,令我惊讶的是,它也给了0!有人知道为什么会这样吗 代码:
专用浮点数频率=1/2代码>
使用Float.toString(frequency)
?这是整数除法的一个例子。尝试:
private float frequency = 1.0/2.0;
Java将执行1/2,这将产生0.5。但是,由于Java将其视为对整数的操作(0.5不是整数),因此它将截断小数,只保留整数部分0。通过告诉Java使用浮点(1.0 vs.1),您告诉它保留中间计算的小数部分。这是整数除法(仅整数)
尝试:
1和2是整数,它们返回一个整数
在除法之前,尝试用这些值创建两个浮点。1和2是java中的整数。如果希望将它们显式解释为浮动,则需要执行以下操作
private float frequency = 1f/2f;
如果你不在乎数学是不是先在双精度上完成的,那么这更容易理解:
private float frequency = 1.0/2.0;
当您对整数进行算术运算时,结果会变成一个整数,也会加上。0
所以
使用
你需要施放。这里是
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
,只需将计算的int
结果强制转换为float
,如下所示
int b = 2;
int a = 1;
float out = (float) a / b;
System.out.println(out);
这将产生0.5的输出重要的是要认识到,赋值右边的表达式是以书面形式计算的,而不管结果被赋值到的变量的类型如何。在本例中,使用了整数文本,因此表达式的结果是整数,然后将其强制转换为浮点;这种行为在“普通”Java程序中是相同的。
private float frequency = 1F/2F;
class Main {
public static void main(String[] args) {
float myValue = (float) 1/2;
System.out.println("1/2 = " + myValue);
}
}
int b = 2;
int a = 1;
float out = (float) a / b;
System.out.println(out);