>  Q&A  >  본문

java - Math.pow(23,29)%91 的结果为什么是错误的?

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才对

怪我咯怪我咯2743일 전678

모든 응답(2)나는 대답할 것이다

  • 伊谢尔伦

    伊谢尔伦2017-04-18 10:55:16

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

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

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

    회신하다
    0
  • PHP中文网

    PHP中文网2017-04-18 10:55:16

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

    회신하다
    0
  • 취소회신하다