文章詳情頁
java - Math.pow(23,29)%91 的結果為什么是錯誤的?
瀏覽:71日期:2024-01-09 08:33:47
問題描述
Math.pow(23,29)%91 的結果為什么是錯誤的?
public class T1 { public static void main(String[] args) {double c = Math.pow(23,29)%91.0;System.out.println(c); }}輸出:28.0int c = (int)Math.pow(23,29)%91;System.out.println(c);輸出 36
然而這都不是正確答案
正確取余后的值是4才對
問題解答
回答1:精度不夠,23 ^ 29是個40位十進制數,
double只有15位有效數字,根本表達不了末尾的準確數值
int最大值只有10位,這么賦值早就溢出了
回答2:double是浮點數,你這個問題最好使用BigInteger來解決。
標簽:
java
排行榜
