如何使用此代码在Java中正确格式化Paystub?

时间:2020-02-03 01:25:26

标签: java

我一直在使用Java进行编码分配以显示各种输入的工资单时遇到问题。该代码(如下所示)使用扫描仪输入功能作为这些“员工”输入其信息的方法,并向其打印出工资单。目前,这是我拥有的代码:

        System.out.println("------------------------------------------");
        System.out.print("Gross Pay:     " + "$");
        System.out.printf("%.2f", grossPay);
        System.out.print("\nRetirement:    " + "$"); 
        System.out.printf(" %.2f", retirementFund);
        System.out.print("\nTax:           " + "$");
        System.out.printf("%.2f", tax);
        System.out.print("\n------------------------");
        System.out.print("\nNet Pay:       " + "$");
        System.out.printf("%.2f", netPay);
        System.out.print("\n==========================================");

我具体遇到的问题是基于此编码,此案例输出存在问题:

------------------------------------------
Gross Pay:     $7160.40
Retirement:    $ 372.34
Tax:           $1900.66
------------------------
Net Pay:       $4887.40
==========================================

是正确的,但是这种情况:

------------------------------------------
Gross Pay:     $0.00
Retirement:    $ 0.00
Tax:           $0.00
------------------------
Net Pay:       $0.00
==========================================

是错误的,应该是:

------------------------------------------
Gross Pay:     $   0.00
Retirement:    $   0.00
Tax:           $   0.00
------------------------
Net Pay:       $   0.00
==========================================

我实现了退休空间编码,因为它在mimir教室中获得了最正确的结果,但是这种情况是错误的。 如何编码打印功能以格式化显示格式

Gross Pay:      $####.##
Retirement:     $####.##
Tax:            $####.## 

1 个答案:

答案 0 :(得分:0)

对于printf()函数,您需要指定数字的宽度及其精度。因此,您的标记必须为“%7.2f”,才能打印6位数字和一个小数点的数字。该数字将右对齐,并带有前导空格。