I ont deux valeurs doublesSoustraire et les valeurs doubles rondes par le multiplicateur
double a = 1.07522;
double b = 1.0752;
et arrondi valeur du multiplicateur
public static final double ROUND_MULTIPLIER = 100000.0;
Donc, il devrait toujours être 5 décimales. J'ai besoin de soustraire deux valeurs doubles et obtenir le résultat comme a - b = 0.00002
.
Comment faire cela en utilisant ROUND_MULTIPLIER
?
J'ai essayé d'utiliser BigDecimal comme
BigDecimal.valueOf(a).subtract(BigDecimal.valueOf(b)).round(new MathContext((int)ROUND_MULTIPLIER));
mais pas toujours fonctionne, revenez parfois 2E-16, il renvoie la valeur bizarre lorsque vous essayez d'ajouter à la seconde valeur ci-dessous
BigDecimal.valueOf(a).subtract(BigDecimal.valueOf(b + 0.00002)).round(new MathContext((int)ROUND_MULTIPLIER));
I besoin d'utiliser ROUND_MULTIPLIER
.
Cela fonctionne mais il est impossible de doubler le résultat. Quand j'essaie 'result.doubleValue()' il renvoie 2.0E-5 – ACz
Le double primitif sera converti en String via 'Double.toString (double)'. Cela rendra la sortie dans la notation scientifique. Cochez cette question pour une réponse: http://stackoverflow.com/questions/16098046/how-to-print-double-value-without-scientific-notation-using-java – Korashen
Essayé Double.toString (résultat) mais il est retourné le même 2.0E-5 – ACz