文章詳情頁
java - Math.pow(23,29)%91 的結(jié)果為什么是錯(cuò)誤的?
瀏覽:103日期:2024-01-09 08:33:47
問題描述
Math.pow(23,29)%91 的結(jié)果為什么是錯(cuò)誤的?
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才對(duì)
問題解答
回答1:精度不夠,23 ^ 29是個(gè)40位十進(jìn)制數(shù),
double只有15位有效數(shù)字,根本表達(dá)不了末尾的準(zhǔn)確數(shù)值
int最大值只有10位,這么賦值早就溢出了
回答2:double是浮點(diǎn)數(shù),你這個(gè)問題最好使用BigInteger來解決。
標(biāo)簽:
java
排行榜

熱門標(biāo)簽