gpt4 book ai didi

java - 如何将小数点舍入到小数点后两位(Java)

转载 作者:行者123 更新时间:2023-11-29 09:39:29 25 4
gpt4 key购买 nike

我是 java 的新手,我必须创建这个程序,但我不知道从哪里开始。有人可以帮助我了解该做什么以及如何编写代码以开始使用吗?

编写一个模拟收银机的程序。提示用户输入三个项目的价格。将它们加在一起得到小计。确定小计的税金 (6%)。找出销售小计加税的总金额。显示每件商品的价格、小计金额、税额和最终金额。

到目前为止我有这个:

package register;
import java.util.Scanner;

public class Register {

public static void main(String[] args) {

Scanner price = new Scanner(System.in);

System.out.print("Please enter a price for item uno $");
double priceuno = price.nextDouble();

System.out.print("Please enter a price for item dos $" );
double pricedos = price.nextDouble();

System.out.print("Please enter a price for item tres $");
double pricetres = price.nextDouble();

double total = ((priceuno) + (pricedos) + (pricetres));
System.out.println("The subtotal is $" + total);

double tax = .06;

double totalwotax = (total * tax );
System.out.println("The tax for the subtotal is $" + totalwotax);
double totalandtax = (total + totalwotax);
System.out.println("The total for your bill with tax is $" + totalandtax);

}
}

输出(假设价格为 price1 = 1.65,price2 = 2.82 和 price3 = $9.08)如下所示:

Please anter a price for item number one $1.65

Please enter a price for item number two $2.82

Please enter a price for item number three $9.08

The subtotal is $13.55

The tax for the subtotal is $0.8130000000000001

The total for your bill with tax is $14.363000000000001

如何使小计和总账单的税金四舍五入到小数点后两位小数?

谢谢

最佳答案

Java 有一个 DecimalFormat 类来处理这样的事情。

http://docs.oracle.com/javase/tutorial/i18n/format/decimalFormat.html

所以你想添加到你的代码中

 DecimalFormat df = new DecimalFormat("###,##0.00");

并将您的输出更改为

 double totalwotax = (total * tax );
System.out.println("The tax for the subtotal is $" + df.format(totalwotax));
double totalandtax = (total + totalwotax);
System.out.println("The total for your bill with tax is $" + df.format(totalandtax));

这将确保您的美分小数点右侧恰好有两位数,并且在总计低于一美元的情况下至少保留一位在左侧。如果它是 1,000 或以上,它将在正确的位置用逗号格式化。如果您的总数高于 100 万,您可能必须将其更改为类似这样的内容才能获得额外的命令

DecimalFormat df = new DecimalFormat("###,###,##0.00");

编辑:所以 Java 也内置了对格式化货币的支持。忘记 DecimalFormatter 并使用以下内容:

NumberFormat nf = NumberFormat.getCurrencyInstance();

然后像使用 DecimalFormatter 一样使用它,但没有前面的美元符号(它将由格式化程序添加)

System.out.println("The total for your bill with tax is " + nf.format(totalandtax));

此外,此方法对区域设置敏感,因此如果您在美国,它将使用美元,如果在日本,它将使用日元,等等。

关于java - 如何将小数点舍入到小数点后两位(Java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16700928/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com