Modulo sur un nombre trop grand

[Résolu/Fermé]
Signaler
Messages postés
114
Date d'inscription
lundi 12 novembre 2012
Statut
Membre
Dernière intervention
29 août 2018
-
Messages postés
114
Date d'inscription
lundi 12 novembre 2012
Statut
Membre
Dernière intervention
29 août 2018
-
Bonjour,

J'ai un String qui ne comporte que des chiffres et souhaiterais le caster en valeur numérique pour faire des calcule dessus, seulement la valeur et trop grande pour être contenue dans un int ou même dans un long.

Voici mon String:

String str = "8004101012192152260333563";

J'aimerais également trouver le modulo 85 de ce nombre et l'afficher avec System.out.println();

Qui c'est qui pourrais m'aider à résoudre mon problème???

La finalité c'est que je devrais trouver et afficher le nombre 33 dans la console normalement.

Merci.

3 réponses

Messages postés
16410
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
24 octobre 2021
2 903
Bonjour,

Pour la manipulation de grands nombres tu as la classe BigInteger :

public static void main(String[] args)
{
    BigInteger a = new BigInteger("8004101012192152260333563");
    BigInteger b = BigInteger.valueOf(85);
    System.out.println(a.mod(b)); // 33
}
Messages postés
114
Date d'inscription
lundi 12 novembre 2012
Statut
Membre
Dernière intervention
29 août 2018
10
Merci KX.

Maintenant que j'ai trouver le modulo comment je fait pour le typer en un int?
Messages postés
16410
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
24 octobre 2021
2 903
Je t'ai donné un lien vers la documentation, dans les méthodes disponibles tu as
intValue()
.
Il faut bien sûr l'utiliser avec précaution et s'assurer que la valeur à convertir en int est bien inférieure à
Integer.MAX_VALUE
ou tu obtiendras une valeur fausse.
Messages postés
114
Date d'inscription
lundi 12 novembre 2012
Statut
Membre
Dernière intervention
29 août 2018
10
Merci a toi KX !!!!!