我正在尝试格式化浮点数以在数字前面加上美元符号。目前我正试图从左侧打印150个空格。
System.out.printf("%150.2f", orderTotal);
这就是我正在使用但我无法弄清楚放在哪里$
我想我可以把整个东西变成一个字符串,但我想知道是否有办法做什么我在找?
答案 0 :(得分:2)
怎么样
System.out.printf("%150s", String.format ("$%.2f", orderTotal));
答案 1 :(得分:2)
System.out.printf("%150s$%.2f", "", orderTotal);
答案 2 :(得分:2)
String.format
只是该任务的错误工具。
查看DecimalFormat.getCurrencyInstance
您想要使用的内容。
答案 3 :(得分:1)
我认为这会给你你想要的东西:
System.out.printf("%150s", "$" + String.format("%.2f", orderTotal));
我认为使用%150s
让您走上正轨。要格式化浮点数以使其具有两个小数位,但不向左侧添加任何额外的空格,只需在格式说明符中省略宽度字段。
我假设您希望整个字段的宽度为150;也就是说,如果货币部分是"$101.20"
,那么您想要在左侧追加143个空格。如果你真的想要150个空格而不管金额多少,那么Reimeus的答案就可以了。
另外,在处理货币时,请考虑使用BigDecimal
代替float
或double
。浮点类型无法准确处理带小数位的数字。