java - 这个方法返回什么?

标签 java parameters int return

下面的 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/

相关文章:

Java 线程 - 线程局部变量

function - 如何在 reflect 包中正确使用 .Call

c++ - 如何从 Windows cmd 运行可执行文件并向其传递参数参数和文件输入重定向?

java - 通过编译时检查获取类的方法对象(在 Java 中)

java - Firebase OrderbyChild 查询返回父键

c++ - 如何编写接受无限参数的函数?

c - 如何编写一个程序来查找整型变量的最大值

使用 g++ -c : compiler recognizes a const string& as int 的 c++ 编译器错误

linq-to-sql - [Linq-To-Sql]如何返回两个不同数据类型的值?

java - 使用 Jersey 为 GET 请求返回 JSON 时找不到 JSONObject 的序列化程序