Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/318.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中,有没有方法格式化double/int或非字符串变量的输出?_Java_Formatting - Fatal编程技术网

在Java中,有没有方法格式化double/int或非字符串变量的输出?

在Java中,有没有方法格式化double/int或非字符串变量的输出?,java,formatting,Java,Formatting,我意识到这听起来很简单,可能是。。。 在main()中的代码中这样说,main()位于循环中: System.out.println(num[i]+"\t "+qty[i]+"\t "+money.format(price[i])+"\t"+money.format(value[i])+"\t"+reorder[i]); 这里捕获的总数为: 正如您可能已经注意到的,它工作得很好。然而,在输出过程中#114行(从第二行到最后一行)的总价值为90.00美元。这是正确的,但会导致R

我意识到这听起来很简单,可能是。。。 在main()中的代码中这样说,main()位于循环中:

System.out.println(num[i]+"\t     "+qty[i]+"\t     "+money.format(price[i])+"\t"+money.format(value[i])+"\t"+reorder[i]);
这里捕获的总数为:

正如您可能已经注意到的,它工作得很好。然而,在输出过程中#114行(从第二行到最后一行)的总价值为90.00美元。这是正确的,但会导致Reorder Point变量的间距为奇数。简单地说,我是否可以格式化此变量,使其占用与其较大的数字副本相同的空间量

String.format("%10.2f", yourFloat)
// or
System.out.format("%10.2f", yourFloat)
将打印一个10字符宽(包括十进制)的字符串,小数点后有两个数字字符

()

所以

将对齐
$
字符(除非
值[i]>999.99


而不是:

System.out.println(
    num[i]                +"\t     "+
    qty[i]                +"\t     "+
    money.format(price[i])+"\t"+
    money.format(value[i])+"\t"+
    reorder[i]);
(这正是您所拥有的,只是为了清晰起见进行了格式化并删除了滚动条)

我可能会写:

System.out.format("%5d\t %5d\t $%5.2f\t $%6.2f\t %5d %n", 
    num[i], qty[i], price[i], value[i], reorder[i]);
这假设
price
value
数组是浮点或双精度数组。由于
money
不是一个标准类,因此很难说它除了添加一个
$
符号之外还能做什么


字符串格式语法在文档中定义,但对于浮动,它大致是

%X.Yf
其中,
X
是总字段宽度,
Y
是小数点的数量

比如说

"123.40"  Has a total width of 6:  
          3 + 1 [decimal point] + 2 = 6)
"  2.34"  Also has a total width of 6:
          2 [spaces] + 1 + 1 [decimal point] + 2 = 6
差不多

String.format("%10.2f", yourFloat)
// or
System.out.format("%10.2f", yourFloat)
将打印一个10字符宽(包括十进制)的字符串,小数点后有两个数字字符

()

所以

将对齐
$
字符(除非
值[i]>999.99


而不是:

System.out.println(
    num[i]                +"\t     "+
    qty[i]                +"\t     "+
    money.format(price[i])+"\t"+
    money.format(value[i])+"\t"+
    reorder[i]);
(这正是您所拥有的,只是为了清晰起见进行了格式化并删除了滚动条)

我可能会写:

System.out.format("%5d\t %5d\t $%5.2f\t $%6.2f\t %5d %n", 
    num[i], qty[i], price[i], value[i], reorder[i]);
这假设
price
value
数组是浮点或双精度数组。由于
money
不是一个标准类,因此很难说它除了添加一个
$
符号之外还能做什么


字符串格式语法在文档中定义,但对于浮动,它大致是

%X.Yf
其中,
X
是总字段宽度,
Y
是小数点的数量

比如说

"123.40"  Has a total width of 6:  
          3 + 1 [decimal point] + 2 = 6)
"  2.34"  Also has a total width of 6:
          2 [spaces] + 1 + 1 [decimal point] + 2 = 6
Formatter Formatter=new Formatter();
System.out.println(格式化程序.format(“%20s%20s%20s%20s%20s%20s”、“Title*”、“Title*”、“Title*”、“Title*”、“Title*”));
对于(int i=0;i<10;i++){
格式化程序=新格式化程序();
System.out.println(格式化程序格式(“%20s%20s%20s%20s%20s%20s”),数量[i],数量[i],货币格式(价格[i]),货币格式(价值[i]),再订购[i]);
}
格式化程序格式化程序=新格式化程序();
System.out.println(格式化程序.format(“%20s%20s%20s%20s%20s%20s”、“Title*”、“Title*”、“Title*”、“Title*”、“Title*”));
对于(int i=0;i<10;i++){
格式化程序=新格式化程序();
System.out.println(格式化程序格式(“%20s%20s%20s%20s%20s%20s”),数量[i],数量[i],货币格式(价格[i]),货币格式(价值[i]),再订购[i]);
}

我并不想让人觉得我在Java方面没有受过教育,但我才刚刚开始,但请您解释一下“%10.2f”的意义/目的好吗?另外,由于我在System.out.println()表单中显示它们,我是否需要像这样使用它。。。System.out.println(String.format(“%10.2f”,值[i])。。。还是像这样?System.out.format(“%10.2f”,值[i]+“\t”+其他变量服务器);很抱歉再次打扰您,但我刚刚尝试了该方法,如果不使用多个语句,我无法在一行中获取多个变量。我希望做一些类似的事情:System.out.format($%3.2f),price[I]+“\t”+num[I]);但我只能让它这样工作:System.out.format($%3.2f),price[I]);System.out.println(“\t”+num[i]);有没有办法在一行/语句中这样做?是的,只是在中添加了类似的内容
System.out.format
将接受您给定的尽可能多的参数,只要您正确地传递它们。如果您尝试执行此操作,则不必查看代码背后的逻辑
System.out.format($%3.2f),price[i]+“\t”+num[i])然后您应该这样做:
System.out.format($%3.2f\t“+num[i],price[i])System.out.format
将接受您给定的尽可能多的参数,只要您正确地传递它们。如果您尝试执行此操作,则不必查看代码背后的逻辑
System.out.format($%3.2f),price[i]+“\t”+num[i])然后您应该这样做:
System.out.format($%3.2f\t“+num[i],price[i])