Ответ 1
Посмотрите ответ здесь. Вы можете написать
moneyToGet.setText(String.format("%.0f", priceValue));
Вот мой простой код
@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("");
}
}
});
Это простой код для калькулятора процентов.
В моем калькуляторе я хочу избежать Scientific Notation, потому что я не хочу объяснять пользователю, что такое Scientific Notation.
Например, если я хочу рассчитать 100 000 000 и вырезать 50%, он должен дать мне 50 000 000 > , который дает мне 5.0E7. И в моем случае это не имеет никакого смысла для пользователя. И, конечно, я знаю, что оба результата верны. Спасибо в Advance.
Посмотрите ответ здесь. Вы можете написать
moneyToGet.setText(String.format("%.0f", priceValue));
Вы можете попробовать этот DecimalFormat
DecimalFormat decimalFormatter = new DecimalFormat("############");
number.setText(decimalFormatter.format(Double.parseDouble(result)));
Я бы предложил использовать BigDecimal
вместо double
s. Таким образом, у вас будет более точный контроль точности вычислений. Также вы можете получить ненаучный String
с помощью BigDecimal.toPlainString()
.
DecimalFormat decimalFormatter = new DecimalFormat("##.############");
decimalFormatter.setMinimumFractionDigits(2);
decimalFormatter.setMaximumFractionDigits(15);
Этот параметр поможет вам ##. ## суффикс 0 перед десятичным, иначе вывод будет .000
btc.setText(decimalFormatter.format(btcval));
использовать это для отображения содержимого
Использовать NumberFormater, например
NumberFormat myformatter = new DecimalFormat("########");
String result = myformatter.format(yourValue);