java在循环中对齐数字列
我试图复制一个从kg到lbs的转换列表,反之亦然。我已经找到了我想要的输出和功能代码,但是我缺少一些东西来将我的值与列的右侧对齐
这是我的密码:
import java.text.*;
public class KilosTwoColumn {
public static void main(String[] args) {
System.out.println("Kilograms" + "\t" + "Pounds" + "\t" + " | " + "\t" + "Pounds" + "\t" + "Kilograms");
int count = 0;
while (count < 100) {
int kilos = count * 2 + 1;
int pounds2 = (count + 4) * 5;
double pounds = kilos * 2.2;
double kilos2 = pounds2 * .453;
DecimalFormat df = new DecimalFormat("#.#");
//if (count > 1 && count < 98) {
//System.out.println("...");
//break;
//}
System.out.printf("%-17d %.1f | %7d %.2f%n", kilos, pounds, pounds2, kilos2);
count++;
}
}
}
我还试图在列表的三行中创建一个中断,并继续最后两行
# 1 楼答案
问题是,您没有为浮点值指定宽度,只指定小数位数
例如,考虑^ {CD1>},它将将第二个值设为浮点值,小数位数为1位,但没有占用多少空间的指示。通过将其更改为
"%-17d %12.1f
,它将占用12个字符,小数点为1试试这样:
对我来说,上述过程输出: