Bonjour à tous, j'ai un petit problème assez serieux quand même.
Voilà je dois manipuler de grand grand très grand nombre qui comporte beaucoup de chiffres.
Pour vous donner un exemple :
Et voilà le problème, c'est que quand je l'enregistre dans un DOUBLE , il me met la notation scientifique (genre : xxxxxxxxxxx^46).Valeur :7.455398332284931E46
Je vous explique... j'utilise SHA qui me donne une clé de 160bits que je transforme en HEX puis en DECIMAL (en utilisant pow(16,i)).
La transformée BYTE--> HEX marche nickel et sans perte de précision.
Pour la transformée HEX--> DEC, je l'ai crée moi-même mais le résultat fait que je perds une grand précision. Voici mon code (en cas si j'ai fait une erreur quelque part mais je ne pense pas) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 public double hexToInt(String Nombre) { double solution =0; int taille = Nombre.length(); int i=0; while (i < taille) { String A=(String) Nombre.substring((taille-i-1),(taille-i)); solution=solution+Integer.valueOf(A,16)* Math.pow(16,i); i++; } System.out.println("Solution:"+solution); return solution; }
La méthode Mathématique POW utilise des doubles mais quand je demande l'affichage du resultat (qui est enregistré dans une variable de type DOUBLE), il me met cette notion scientifique.
Donc si quelqu'un a une solution, car après le grand résultat subit un modulo et donc je dois être extremement précis.
Merci d'avance pour vos réponses
Partager