在這種情況下可能會失去精度嗎?用整數創建日期然後回到整數在JAVA中失去精度?
int X = (some integer number);
Date D = new Date(X * 1000);
int Y = (int)(D.getTime())/1000;
我相信只要X是某個整數值,Y總是與X相同。那是對的嗎?
在這種情況下可能會失去精度嗎?用整數創建日期然後回到整數在JAVA中失去精度?
int X = (some integer number);
Date D = new Date(X * 1000);
int Y = (int)(D.getTime())/1000;
我相信只要X是某個整數值,Y總是與X相同。那是對的嗎?
不,你是不正確的! 更換線Date D = new Date(X * 1000);
與Date D = new Date(X * 1000L)
;
使用長(64位)數字不是整數(32位)數字。如果你使用整數,它可能會溢出(從正到負)。看到這個鏈接的詳細信息https://www.securecoding.cert.org/confluence/display/java/NUM00-J.+Detect+or+prevent+integer+overflow
'X * 1000'可能溢出...問題不會是精度的損失,但(看似)隨機日期... – assylias