public static final long MONTH_IN_MILLIS = 30*24*60*60*1000

本文介绍了一个关于Java中整型变量溢出的实际案例。在计算两个时间点间大致月份数量时,由于常量定义不当导致计算结果出现负数。通过调整常量定义方式解决了该问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

public static final long MONTH_IN_MILLIS = 30*24*60*60*1000; 一看就明白这个是定义一月大概的微妙数.

当我在计算两个月之间大概的月的个数时, 总是发现他返回一个负数, 奇怪, 后面调试发现 MONTH_IN_MILLIS = -1702967296. 呵呵, 原来overflow了.

public static final long MONTH_IN_MILLIS = (30l)*24*60*60*1000;改成这样就ok了.


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值