gpt4 book ai didi

Java日期计算结果截断小数位

转载 作者:行者123 更新时间:2023-12-01 19:05:56 24 4
gpt4 key购买 nike

如果我使用不同的日期调用此方法,则差值/1000L/60L/60L/24L 的结果的小数位将始终被截断。我可以做什么来防止这种情况发生?我需要 4.xx 的结果。

public boolean checkDelayed(Date date1, Date date2)
{
long difference = date2.getTime() - date1.getTime();

if (difference / 1000L / 60L / 60L / 24L <= 4L)
{
return true;
}

return false;
}

最佳答案

尝试使用 double 而不是长整型数。

public boolean checkDelayed(Date date1, Date date2)
{
double difference = (double) (date2.getTime() - date1.getTime());

if (difference / 1000d / 60d / 60d / 24d <= 4d)
{
return true;
}

return false;
}

最好的方法是应用简单的数学。你的条件是这样的:

difference / 1000L / 60L / 60L / 24L <= 4L

像这样锻炼:

        difference / 60L / 60L / 24L <= 4000L
difference / 60L / 24L <= 240000L
difference / 24L <= 14400000L
difference <= 345600000L

给你了。始终工作的简单状态。

public boolean checkDelayed(Date date1, Date date2)
{
long difference = date2.getTime() - date1.getTime();

if (difference <= 345600000L)
{
return true;
}

return false;
}

所有这一切的原因是长数据类型不支持十进制值。通过转换为 double ,您将能够保留小数值。

关于Java日期计算结果截断小数位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10106826/

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