Tôi đang cố gắng thực hiện một số công cụ tính toán cơ bản trong ứng dụng Android của mình để so sánh giá trị Date.getTime()
với một số nội dung được tính toán.Android/Java: dài bị âm mà không vượt quá max_value
Việc tính toán tôi làm trong một truy vấn cơ sở dữ liệu là:
long minus = pauseDays * 24 * 60 * 60 * 1000;
Vì vậy, về cơ bản tôi tính toán millisecond-giá trị của pauseDays
. Nếu pauseDays
trở nên lớn hơn (tôi đang nói khoảng 90 ngày hoặc lâu hơn), điều gì đó lạ sẽ xảy ra. Kết quả tính toán là số âm.
Điều kỳ lạ là kết quả phải là 7776000000
, vì vậy nó phải nhỏ hơn Long.MAX_VALUE
. Ai có thể giải thích cho tôi tại sao tôi nhận được một số âm ở đây?
Đánh bại tôi với nó :) +1 – Brian
Cảm ơn, đã giải quyết được vấn đề của tôi :) Tôi hoàn toàn bỏ qua thực tế, rằng pauseDays ist giá trị INT. – user1515310