J'ai un problème préoccupé par perdre de précisionJava perte de précision
ma tâche est d'imprimer des nombres sous forme de chaînes
int exponent = ...
int[] Mantissas = { 1, 2, 5 };
double dataStep = java.lang.Math.pow(10.0, exponent) * Mantissas[mantissaIndex];
...
for (int i = 0; i < NSteps; i++)
steps[i] = firstStep + i * dataStep;
draw(steps);
par exemple, 0,2 * 7 = 1,4000000000000001; 0.0000014/10 = 1.3999999999999998E-7
Comment résoudre ce problème?
UPD: Le principal problème est string formateur de sortie. je ne dérange pas de perdre environ 0,00000001 valeur. Maintenant, je résolus comme String.format (« % f », valeur), mais je pense que ce n'est pas une bonne approche
La question la plus fréquemment posée sur l'ensemble de stackoverflow. – mob
Nous devrions avoir un badge fubar pour poser cette question. –