gpt4 book ai didi

java - 为什么这个 Java 表达式不将最终值转换为 long 类型?

转载 作者:行者123 更新时间:2023-11-30 02:40:32 26 4
gpt4 key购买 nike

//date is a java.util date
//date.getTime() = 1485462073669
int days = 3600;
long time = date.getTime() + (days * 24 * 60 * 60 * 1000L);

这将导致时间 = 344094777669。如果我转换可变的日期,结果会有所不同。

date.getTime() + ((long) days * 24 * 60 * 60 * 1000L)

这将导致时间 = 4639062073669

为什么需要将 days 转换为 long 类型才能正确计算表达式?

最佳答案

Java 从左到右。

days *  24  *  60  *  60  *  1000L
int * int * int * int * long
int * int * int * long
int * int * long
int * long
long

您还可以执行以下操作:

1000L *  days *  24   *   60 * 60
long * int * int * int * int
long * int * int * int
long * int * int
long * int
long

但是......就你的情况而言,它不应该改变任何东西。我运行你的代码,两种方法都返回相同的结果。也许date.getTime()返回了另一个值?

关于java - 为什么这个 Java 表达式不将最终值转换为 long 类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41882351/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com