如何将小数四舍五入到小数点后 2 位 (Java)

2023-12-10

我对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)如下所示:

请输入第一项商品的价格 1.65 美元

请输入第二件商品的价格 2.82 美元

请输入商品编号 3 的价格 9.08 美元

小计为 13.55 美元

小计的税额为 $0.8130000000000001

您的账单含税总额为 $14.363000000000001

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

Thanks


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");

EDIT:因此Java还内置了对格式化货币的支持。忘记 DecimalFormatter 并使用以下内容:

NumberFormat nf = NumberFormat.getCurrencyInstance();

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

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

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将小数四舍五入到小数点后 2 位 (Java) 的相关文章

随机推荐

  • 此 iPhone 6 运行的是 iOS 11.3.1 (15E302),该版本的 Xcode 可能不支持

    我正在使用 Xcode 9 2 和 Sierra 10 3 3 我的 iPhone 6 版本为 11 3 1 15E302 我无法使用 iPhone 6 来测试 IOS 应用程序 因为 Xcode 说 无法找到设备支持文件 此 iPhone
  • 如何首先按值排序 std::map,然后按键排序?

    我需要排序一个std map按值 然后按键 该地图包含如下数据 1 realistically 8 really 4 reason 3 reasonable 1 reasonably 1 reassemble 1 reassembled 2
  • 有什么办法可以链接到我的应用程序的 Android 通知设置吗?

    有什么方法可以启动意图来访问我的应用程序的 Android 通知设置屏幕 如下图所示 或者有一种简单的方法可以制作一个只需单击即可引导至此处的 PreferenceScreen 项目 以下内容适用于 Android 5 0 Lollipop
  • 查找二维数组或直方图的两个主要峰以及峰之间的谷

    for int i 0 i lt c length i for int j 0 j
  • 无法将 Firebase cocoapod 添加到 kotlin 多平台共享模块

    我正在将 Android iOS 应用程序迁移到 Kotlin 多平台框架 这个过程或多或少进展顺利 但是所有与从 iOS 框架 pod 导入以在共享代码模块中使用它们相关的事情都不容易 这次 我在尝试在通用模块中开发共享类来处理与分析和崩
  • 意外的字符串常量[关闭]

    Closed 这个问题是无法重现或由拼写错误引起 目前不接受答案 我的数据库有问题 我想在R中输入数据库 但出现此消息 错误意外的字符串常量 我写了这个命令 read csv prova1 sep header 20 有什么问题 我想我的数
  • 在具有透明背景的 Octave 中保存绘图

    我使用 Octave 绘制了一些 GPS 轨迹和航向矢量 我想将绘图覆盖在卫星图像上 但是当我保存绘图时 它具有白色背景 有没有办法保存为透明背景 我认为将 print 与 pngalpha 设备一起使用可以满足您的需求 例如 print
  • Android ActionBar/Toolbar 颜色在浅色主题和深色主题中不同

    我试图理解为什么ActionBar浅色主题与深色主题的风格不同 下面是一个简单的设置屏幕 可以在具有相同主题的浅色和深色主题之间切换 值 主题 xml
  • php日期和夏令时混淆

    我遇到了一个问题 我 99 确信它与昨天开始的夏令时有关 以下脚本 其中 86400 是一天的秒数 给出以下输出 1383451200 2013 11 03 1 1383537600 2013 11 03 0 2 个时间戳 以一天中的秒数分
  • 使用 jQuery 从 URL 获取查询字符串 [重复]

    这个问题在这里已经有答案了 我有以下网址 http www mysite co uk location mylocation1 我需要得到的值location将 URL 转换为变量 然后在 jQuery 代码中使用它 var thequer
  • 在 ruby​​ 中如何判断输入的字符串是大写还是小写?

    我正在尝试编写一个程序 当输入单个字母时 如果它是大写字母 则将其保留为大写字母并返回它 如果它是小写字母 则将其转换为大写字母 我该如何编写才能判断字符串最初是大写还是小写 只需将字符串转换为大写并与原始字符串进行比较 string st
  • 设置 SCORM 课程进度

    我只是想知道 是否可以在运行时在 SCORM 文件中设置课程进度 我应该检查哪种方法 进度将根据 SCO 开发人员的学习要求来定义 一般来说 达到的目标 cmi objectives 数量或学习者访问的页面数量 要存储进度 如果 SCORM
  • Shiny 中 fillPage 的基本示例 - 它是如何工作的?

    我不明白如何获得一个图来完全填充我的仪表板 除了标题之外 我想我必须使用 fillPage 但我无法让它工作 这是我的例子 我很感谢任何提示 ipak lt function pkg new pkg lt pkg pkg in instal
  • 为什么这个并行代码比类似的非并行版本慢?

    我有以下代码 从 LINQPad 复制到此处 显然 我似乎不明白 TPL 是如何工作的 或者代码是垃圾 为什么并行版本比非并行版本运行得慢 for int i 0 i lt 100 i ParallelOptions ops new Par
  • Firebase 未将 CORS 标头添加到 REST 请求

    有没有办法为 REST 端点启用 CORS 如上所述here and here Firebase 似乎不再默认添加它们 对于不需要实时连接或无法使用 Websocket 的应用程序来说 这将很有帮助 这是对 Firebase 的 REST
  • R:尽可能均匀地分配数量 II

    我们有一定的数量 例如300 单位 该数量应尽可能均匀地分布在 40 个 槽 或 箱 中 如果每个槽都相同 那就很容易了 所以每个槽都是 7 5 然而 插槽的大小各不相同 我们不能 填充 超过其 大小 允许的范围 例如如果只有 4 个 我们
  • 仅将 HTML、CSS 网页部署到 Tomcat

    我刚刚开始开发website 我现在所拥有的就是HTML 页面由几个人支持CSS 样式表 我可以创建吗来自 HTML 和 CSS 页面的 WAR 文件 我如何将它们部署到 Tomcat 服务器上 Thanks 没有真正需要创建一场战争来从
  • 如何在同一页面上的 Angular 应用程序和非 Angular 应用程序之间进行通信?

    我正在通过 Angular bootstrapping 使用 Angular 模块将一段非 Angular 网页转换为 Angular 版本 它工作得很好 除了它需要与页面的其他部分进行通信这一事实之外 不幸的是 我目前无法将页面的其余部分
  • 简单的计算由于某种原因不起作用

    好吧 我正在尝试计算两个值的百分比 这应该非常简单 但由于某些奇怪的原因它不起作用 我太累了 太笨了 无法弄清楚 这是我的代码 它一直返回 0 我在调试时检查了这些值 FilesCompleted 为 295 TotalFilesCount
  • 如何将小数四舍五入到小数点后 2 位 (Java)

    我对java相当陌生 我必须创建这个程序 但我不知道从哪里开始 有人可以帮助我做什么以及如何编写代码来开始吗 编写一个模拟收银机的程序 提示用户输入三件商品的价格 将它们加在一起即可得到小计 确定小计的税费 6 求销售小计加税的总金额 显示