Maison  >  Questions et réponses  >  le corps du texte

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 Il y a quelques jours670

répondre à tous(2)je répondrai

  • 伊谢尔伦

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

    n'est pas assez précis, 23 ^ 29 est un 40位 nombre décimal,

    • doubleSeulement 15 chiffres significatifs, il est impossible d'exprimer la valeur exacte à la fin

    • intLa valeur maximale n'est que de 10 chiffres, donc l'affectation a déjà débordé

    répondre
    0
  • PHP中文网

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

    Double est un nombre à virgule flottante. Il est préférable d'utiliser BigInteger pour résoudre votre problème.

    répondre
    0
  • Annulerrépondre