java - Math.pow(23,29)%91 的结果为什么是错误的?
怪我咯
怪我咯 2017-04-18 10:53:16
0
2
666

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.0


        int c = (int)Math.pow(23,29)%91;

        System.out.println(c);

输出  36

然而这都不是正确答案

正确取余后的值是4才对

怪我咯
怪我咯

走同样的路,发现不同的人生

모든 응답(2)
伊谢尔伦

은 정확하지 않습니다. 23 ^ 2940位십진수입니다.

  • double유효숫자 15자리만 있어서 마지막에 정확한 값을 표현하기는 불가능합니다

  • int최대값이 10자리밖에 안되어 이미 과제가 넘쳤습니다

洪涛

Double은 부동 소수점 숫자로 문제를 해결하려면 BigInteger를 사용하는 것이 가장 좋습니다.

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!