Java 如何将$符号附加到指定宽度并右对齐的字段中的浮点值?
我需要将$sign附加到float值,该值位于指定宽度和右对齐的字段中 使用system.out.printf(“$%8.2f”,r.getPrice())非常简单,但这给了我一个左对齐的$符号,而我的浮点值是右对齐的,例如,$23.99(在$符号和浮点值之间指定了未使用的宽度空格),而不是$23.99(在浮点值和$符号的左边都有指定的未使用宽度空格) 请注意,分配给字段的值来自“getter”类(不知道这是否有区别) 代码如下:Java 如何将$符号附加到指定宽度并右对齐的字段中的浮点值?,java,formatting,Java,Formatting,我需要将$sign附加到float值,该值位于指定宽度和右对齐的字段中 使用system.out.printf(“$%8.2f”,r.getPrice())非常简单,但这给了我一个左对齐的$符号,而我的浮点值是右对齐的,例如,$23.99(在$符号和浮点值之间指定了未使用的宽度空格),而不是$23.99(在浮点值和$符号的左边都有指定的未使用宽度空格) 请注意,分配给字段的值来自“getter”类(不知道这是否有区别) 代码如下: list.stream() .forEach(r -&g
list.stream()
.forEach(r ->
System.out.printf("%4d %-15s %-27s %6d %8.2f\n", r.getId(),
r.getDepartment(), r.getDescription(), r.getQuantity(), r.getPrice())
);
有一种对区域设置敏感的习惯用法非常有效: 使用: 如果您当前所在的地区在美国,则
println
将打印$120.00
另一个例子:
import java.text.NumberFormat;
import java.util.Locale;
Locale locale = new Locale("en", "UK");
NumberFormat fmt = NumberFormat.getCurrencyInstance(locale);
System.out.println(fmt.format(120.00));
这将打印:£120.00此信息虽然有趣,但并不能回答问题。请注意,提供的代码是一个具有lambda的流,它进行迭代,并且格式必须应用于结果列表中的每个值,其方式不会将符号添加到与右行平行的左对齐列中僵硬,宽度定义列。我不明白你指的是什么。请尝试向我解释,以便我可以帮助你。
import java.text.NumberFormat;
import java.util.Locale;
Locale locale = new Locale("en", "UK");
NumberFormat fmt = NumberFormat.getCurrencyInstance(locale);
System.out.println(fmt.format(120.00));