Voici mon code simple
@Override
public void onClick(View v) {
try {
double price = Double.parseDouble(ePrice.getText().toString());
double percent = Double.parseDouble(ePercent.getText().toString());
double priceValue = price * percent/100.0f;
double percentValue = price - priceValue;
moneyToGet.setText(String.valueOf(priceValue));
moneyToPay.setText(String.valueOf(percentValue));
moneyToGet.setText("" + priceValue);
moneyToPay.setText("" + percentValue);
// catch
} catch (NumberFormatException ex) {
// write a message to users
moneyToGet.setText("");
}
}
});
Ceci est un code simple pour la calculatrice de pourcentage.
Ce que je veux, c'est éviter la Notation scientifique dans mon calculateur car je ne veux pas expliquer à l'utilisateur ce qu'est la notation scientifique.
Par exemple si je veux calculer 100 000 000 et couper 50% de cela, il devrait me donner 50 000 000 qui me donne 5.0E7 Et dans mon cas cela n'a aucun sens pour l'utilisateur. Et bien sûr, je sais que les deux résultats sont corrects. Merci d'avance.
Vérifiez la réponse ici . Tu peux écrire
moneyToGet.setText(String.format("%.0f", priceValue));
Vous pouvez essayer ce DecimalFormat
DecimalFormat decimalFormatter = new DecimalFormat("############");
number.setText(decimalFormatter.format(Double.parseDouble(result)));
Je suggérerais d'utiliser BigDecimal
s au lieu de double
s. De cette façon, vous aurez un contrôle plus précis sur votre précision de calcul. Vous pouvez également obtenir une String
non scientifique en utilisant BigDecimal.toPlainString()
.
DecimalFormat decimalFormatter = new DecimalFormat("##.############");
decimalFormatter.setMinimumFractionDigits(2);
decimalFormatter.setMaximumFractionDigits(15);
Cette option vous aidera avec ##. ## suffixe 0 avant le point décimal, sinon la sortie sera .000
btc.setText(decimalFormatter.format(btcval));
utiliser ceci pour afficher du contenu
Utilisez NumberFormater comme
NumberFormat myformatter = new DecimalFormat("########");
String result = myformatter.format(yourValue);