java 我如何把一个双成一美元和美分的金额只使用格式[重复]

brgchamk  于 2023-11-15  发布在  Java
关注(0)|答案(1)|浏览(97)

此问题在此处已有答案

Java - format double value as dollar amount(5个答案)
2天前关闭。
这是一个学校作业,笔记上没有提到这一点。
我尝试了$%2$e,我希望这能起作用,但它只给了我科学计数法。我使用字符串和扫描仪,它需要显示高级格式的东西。如果有人可以帮助我,请这样做。

dxxyhpgq

dxxyhpgq1#

使用 Formatter 类。
它可以通过 String#formatString#formatted 方法方便地访问。
格式说明符的完整列表可以在 Formatter**JavaDoc 中找到。

double x = 1.2345;
String a = new Formatter().format("%.2f", x).toString();
String b = String.format("%.2f", x);
String c = "%.2f".formatted(x);

字符串
输出

a = 1.23
b = 1.23
c = 1.23


但是,Java 建议使用 BigDecimal 类作为货币。

这里有一个例子。

BigDecimal x = new BigDecimal("1.2345");
x = x.setScale(2, RoundingMode.HALF_EVEN);


从,RoundingMode(Java SE 21 & JDK 21)

  • API说明:**

这是一种舍入模式,当在一系列计算中重复应用时,它可以在统计上最小化累积误差。它有时被称为“银行家舍入”,主要在美国使用。这种舍入模式类似于Java(JLS 15.4)中用于大多数浮点和双精度算术运算符的舍入策略。这种模式对应于IEEE 754舍入方向属性roundTiesToEven *。

相关问题