-2

所以我正在为自己制作一个小应用程序,到目前为止一切都很好,我不知道我能做什么,但是当我需要十进制答案时,我的答案都是整数。

编码:

public float NumberCalc(){
    float number1 = 255/100;
    float number2 = ((5/366)*100);
    float finalNumber =(number1*number2);
    return finalNumber;
}

所以我得到了 number1 的 2.0 和 number2 的 0.0 我被难住了

任何人都可以对这种情况有所了解吗?

4

3 回答 3

4

您正在执行整数除法并将结果存储为浮点数。

255/100结果为 2 个整数,另存为浮点数2.0为避免这种情况,您可以将除法指定为整数浮点数或浮点除法整数255.0/100255/100.0255f。这同样适用于number2

于 2013-10-31T00:54:08.953 回答
1

第一个分区中的数字 255 和 100 都是 int。因此,当您在 java 中划分两个整数时,您会得到“商”。然后 Java 将此答案转换为浮点数。

您可以改为在除法发生之前将分子转换为浮点数,以保证结果将是浮点除法。

尝试:

public float NumberCalc(){
    float number1 = (float) 255/100;
    float number2 = (((float)5/366)*100);
    float finalNumber =(number1*number2);
    return finalNumber;
}
于 2013-10-31T00:57:57.840 回答
0

将分数转换为浮点数或将变量设置为(例如)

float a = 200f 

为你的数学。你不需要制作变量,我认为它只会让它更整洁。Android 将除法计算为整数。

于 2013-10-31T00:54:08.473 回答