Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何将$符号附加到指定宽度并右对齐的字段中的浮点值?_Java_Formatting - Fatal编程技术网

Java 如何将$符号附加到指定宽度并右对齐的字段中的浮点值?

Java 如何将$符号附加到指定宽度并右对齐的字段中的浮点值?,java,formatting,Java,Formatting,我需要将$sign附加到float值,该值位于指定宽度和右对齐的字段中 使用system.out.printf(“$%8.2f”,r.getPrice())非常简单,但这给了我一个左对齐的$符号,而我的浮点值是右对齐的,例如,$23.99(在$符号和浮点值之间指定了未使用的宽度空格),而不是$23.99(在浮点值和$符号的左边都有指定的未使用宽度空格) 请注意,分配给字段的值来自“getter”类(不知道这是否有区别) 代码如下: list.stream() .forEach(r -&g

我需要将$sign附加到float值,该值位于指定宽度和右对齐的字段中

使用system.out.printf(“$%8.2f”,r.getPrice())非常简单,但这给了我一个左对齐的$符号,而我的浮点值是右对齐的,例如,$23.99(在$符号和浮点值之间指定了未使用的宽度空格),而不是$23.99(在浮点值和$符号的左边都有指定的未使用宽度空格)

请注意,分配给字段的值来自“getter”类(不知道这是否有区别)

代码如下:

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