我想要创建的应用程序有问题。这是关于你花钱的数钱。我按了一个按钮。每当我按下它时,文章x的数量增加1。只是为了测试整件事,我将文章的价格设定为0.3欧元。按钮上方和下方显示文章数量和花在它们上的钱。我点击按钮,钱被设置为0.3。我再次按下,它被设置为0.6。当我再按第三次时,它不会说0.9但是0.89999999?为什么它只是去0.9?我已经尝试过舍入整个事情,但它不起作用或我的应用程序只是崩溃...也许错误是非常愚蠢但我有点新的Android Studio / Java编程,此时我有点卡住了。 下面是我正在讨论的代码:
TextView numbertextview;
TextView moneytextview;
Button addbutton;
double price, money;
int number;
...
money = 0;
moneytextview.setText(Double.toString(money));
price = 0.3;
number = 0;
numbertextview.setText(Integer.toString(number));
addbutton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
number++;
numbertextview.setText(Integer.toString(number));
money = money + price;
moneytextview.setText(Double.toString(money) + "0€");
}
});
答案 0 :(得分:0)
https://docs.oracle.com/javase/tutorial/java/data/numberformat.html
moneytextview.setText(String.format("%.2f", Double.toString(money)) + "0€");
这应该让它看起来正确但是,你可能会得到四舍五入的错误,所以要注意这一点。
这个问题已经在其他许多问题中得到了解答,这些问题关于浮点数这种愚蠢的计算机内存问题。然而,作为一个新的程序员,他正试图学习编写PrintF并将float / double格式化为你想要的方式比理解它为什么会发生更重要。此外,这个问题可能已在Double decimal formatting in Java更具体地回答。