Question

J'ai un problème avec la classe Java BigInteger: Je ne peux pas coller une grande valeur dans BigInteger. Par exemple, disons que je veux attribuer un BigInteger à ce numéro:

26525285981219105863630848482795

Je ne peux pas l'affecter directement, parce que le compilateur pense qu'il est un entier:

val bi = 26525285981219105863630848482795 //compile error

Mais je veux que ce soit un BigInteger. Est-il possible de pouvoir coller directement ce dans le code source? S'il n'y a pas de telle sorte, alors est-il un moyen de Scala, qui a beaucoup plus facile à utiliser la classe BigInt? Merci pour l'aide.

Était-ce utile?

La solution

répondre est correcte d'un point de vue Java, mais Scala vous peut faire plus avec scala.BigInts que ce que vous pouvez faire avec java.math.BigIntegers.

Par exemple:

scala> val a = new BigInteger("26525285981219105863630848482795");
a: java.math.BigInteger = 26525285981219105863630848482795

scala> a + a
:7: error: type mismatch;
found   : java.math.BigInteger
required: String
       a + a

La façon canonique à Scala instancier une classe est d'utiliser une usine située dans la

Autres conseils

Cela devrait fonctionner:

BigInteger bigInt = new BigInteger("26525285981219105863630848482795");

BigInteger lit les chaînes et les parse dans le bon numéro. En raison de cela, vous voulez vérifier java.text.NumberFormat.

scroll top