我是Java新手,正在学习第一步。
做作业时,我在打印带有浮点数的总计时遇到问题:
public class Hello {
public static void main(String[] args) {
System.out.println("Hello, Francesco");
int myFirstNumber = (10 + 5) + (2 * 10);
int mySecondNumber = 12;
int myThirdNumber = myFirstNumber * 2;
int myTotal = myFirstNumber + mySecondNumber + myThirdNumber;
float myLastOne = myTotal/10;
System.out.println(myTotal);
System.out.println(myLastOne);
}
}
Java打印的是11.0
:
Hello, Francesco
117
11.0
但是它应该打印11.7
:
Hello, Francesco
117
11.7
我知道问题出在我使用float
的第8行中,甚至尝试使用double
,但结果相同
在Java中int devision int =除法。您必须先将int转换为浮点数。
float myLastOne = (float)myTotal/10;
或
float myLastOne = (float)myTotal/10.0;
这是因为int-division
,因为10
是int
。您需要添加后缀f以指定它是浮点数
float myLastOne = myTotal / 10f;
System.out.println(myLastOne); // 11.7
[double
也可以使用
double myLastOne = myTotal / 10.0;
System.out.println(myLastOne); // 11.7