下面的 return 语句中的“(int)”实际上做了什么?
public double calc(double amount){
return (int)(amount * 100)/100;
}
我期望此方法会返回与传入的值相同的值,因为我先乘以 100,然后除以 100 。 。 。让我回到原来的值,但当我在编译器中测试时,这是错误的。例如:
carInformation myCar = new carInformation("");
System.out.println(myCar.calc(34.86432456789));
我得到:
34.0
为什么会这样?
最佳答案
乘法之后,转换为 int
会截断小数点以外的所有内容,因此
3486.432456789
变为 3486
,除以 100 得到 34
。这太过分了;不需要乘法或除法,只需:(int) amount
。然后返回值为 double
,因此它会隐式转换回 double
:34.0
。
关于java - 这个方法返回什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19233298/