J'ai un problème avec le Java Je ne peux pas l'attribuer directement, car le compilateur pense que c'est un entier: P > BigInteger Code> Classe: Je ne peux pas coller une grande valeur dans
BigInteger code>. Par exemple, disons que je veux affecter un
biginteger code> à ce numéro:
val bi = 26525285981219105863630848482795 //compile error
3 Réponses :
Cela devrait fonctionner:
BigInteger bigInt = new BigInteger("26525285981219105863630848482795");
Réponse est correcte d'une perspective Java, mais à Scala vous peut faire plus avec Par exemple: P> scala.bigint code> S que ce que vous pouvez faire avec
java.math.biginteger code> s.
scala> val x = BigInt(12)
x: BigInt = 12
scala> val y = BigInt(12331453151315353L)
y: BigInt = 12331453151315353
scala> val z = BigInt("12124120474210912741099712094127124112432")
z: BigInt = 12124120474210912741099712094127124112432
scala> x + y * z
res1: BigInt = 149508023628635151923723925873960750738836935643459768508
Démarrer dans scala 3 code> et améliorations apportées à littéraux numériques , vous pouvez utiliser le formulaire suivant:
val big: BigInt = 26_525_285_981_219_105_863_630_848_482_795
// 26525285981219105863630848482795
Qu'entendez-vous par "Le compilateur pense que c'est un entier" i>. Comment le compilateur peut-il penser qu'un numéro à 30 chiffres est un entier code> code>?
@Oxbow - Je pense que Michael signifiait que le compilateur Scala pense que le littéral est un entier, puis se plaint que "nombre entier trop grand". Essayez
val A = 26525285981219105863630848482795 code> dans l'interpréteur Scala :).