在java中我有一个浮动值,我保持正确但它应该是一个货币价值而$符号不会向左移动

时间:2016-01-28 23:59:51

标签: java floating-point printf

如何在我使用printf格式化的浮点值的同时移动$符号?

System.out.printf("$%20.2f\n", booksTotal );

最终看起来像

"$               10.00"
 ↑

而不是

"               $10.00"
                ↑

2 个答案:

答案 0 :(得分:2)

System.out.printf("%20s$%.2f%n", " ", booksTotal);

答案 1 :(得分:1)

您可能需要首先使用美元视线创建表示数值的正确字符串:

String.format("$%.2f", booksTotal) - > "$10.00"

然后将其放在您的专栏

System.out.printf("%21s%n", String.format("$%.2f", booksTotal)); 
//                   ^20+1 since previous pattern had one place reserved for $

如果您想要依赖操作系统的行分隔符(例如Windows的%n),也可以考虑使用\n代替\r\n

演示(为了清晰起见,添加了',您需要将其删除):

System.out.printf("'%21s'%n", String.format("$%.2f", 123d));
System.out.printf("'%21s'%n", String.format("$%.2f", 32.213));
System.out.printf("'%21s'%n", String.format("$%.2f", 1d));

结果:

'              $123,00'
'               $32,21'
'                $1,00'