这是我的简单代码
@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("");
}
}
});
这是百分比计算器的简单代码。
我想要的是避免计算器中的科学记数法,因为我不想向用户解释什么是科学记数法。
例如如果我想计算 100,000,000 并削减 50%,它应该给我 50,000,000 这给了我 5.0E7 在我的情况下,这对用户没有任何意义。当然,我知道两种结果都是正确的。 在此先感谢。
答案 0 :(得分:12)
检查回答here。你可以写
moneyToGet.setText(String.format("%.0f", priceValue));
答案 1 :(得分:6)
您可以尝试使用此DecimalFormat
DecimalFormat decimalFormatter = new DecimalFormat("############");
number.setText(decimalFormatter.format(Double.parseDouble(result)));
答案 2 :(得分:2)
我建议使用BigDecimal
代替double
s。这样您就可以更精确地控制计算精度。您还可以使用String
获取非科学BigDecimal.toPlainString()
。
答案 3 :(得分:1)
DecimalFormat decimalFormatter = new DecimalFormat("##.############");
decimalFormatter.setMinimumFractionDigits(2);
decimalFormatter.setMaximumFractionDigits(15);
此选项将帮助您##。##后缀0在十进制之前,否则输出将为.000
btc.setText(decimalFormatter.format(btcval));
用它来显示内容
答案 4 :(得分:0)
使用NumberFormater,如
NumberFormat myformatter = new DecimalFormat("########");
String result = myformatter.format(yourValue);