Android 计算在不应该返回整数时返回整数



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

代码:

public float NumberCalc(){
    float number1 = 255/100;
    float number2 = ((5/366)*100);
    float finalNumber =(number1*number2);
    return finalNumber;
}
所以我得到数字 2.0

和数字 0.0 数字 2我被难住了

谁能对这种情况有所了解?

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

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

你第一分区中的数字 255 和 100 都是 int。因此,当你在java中除以两个整数时,你会得到"商"。然后Java将这个答案投射到float上。

相反,您可以在除法

发生之前将分子强制转换为浮点数,以保证结果将是浮点除法。

尝试:

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

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

float a = 200f 

为了你的数学。在我看来,您不需要制作变量,它只会使其更整洁。安卓计算整数的除法。

最新更新