2016-03-22 11 views
0
import java.util.Scanner; 

public class Taxes { 

    public static void main(String[] args) { 
     // TODO Auto-generated method stub 

     System.out.printf("Enter the employees first name: "); 

     Scanner input = new Scanner(System.in); 

     String fName = input.nextLine(); 

     System.out.printf("Enter the employees last name: "); 

     String lName = input.nextLine(); 

     System.out.printf("Enter the hours worked for the week: "); 

     double hours = input.nextDouble(); 

     System.out.printf("Enter the hourly pay rate: "); 

     double pay = input.nextDouble(); 

     double gross = hours * pay; 

     System.out.printf("Enter the federal tax withholding: "); 

     double fed = input.nextDouble(); 
     double fTax = gross * fed; 

     System.out.printf("Enter the state tax withholding: "); 

     double state = input.nextDouble(); 
     double sTax = gross * state; 

     double Ttax = sTax + fTax; 

     double net = gross - Ttax; 



     System.out.printf(
       "Employee Name:%s %s\n\nHours Worked:%s hours\n\nPay Rate:$%.2f\n\nGross pay:$%.2f\n\nDeductions: \n\n\tFederal Withholding:(%.2f%%)$%.2f \n\n" 
         + "\tState Withholding:(%.2f%%)$%.2f\n\n\tTotal Witholding:$%.2f\n\nNet Pay:$%.2f", 
       fName, lName, hours, pay, gross, fed, fTax, state, sTax, Ttax, net); 

     input.close(); 
    } 
} 

Federal ve Eyalet vergisi stopajlarının yüzde olarak gösterilmesi için iki değişken daha bildirmem gerekiyor.Baskı hızıyla yüzdelerin formatlanması

statewit = sTax * 100; 
fedwit = fTax * 100; 

: I (20.00%) Ben gibi altta yeni bir değişken bildirerek denedim

gibi bir bütün yüzde dönmelerini gerek (00.20%) olarak

Örnek gösteriyorlar Yüzdelerini istediğim gibi döndürmek için ama sonunda toplamı net olmaya eğilimlidir.

Herhangi bir yardım çok takdir edilecektir, teşekkürler!

+0

java düzeltilmiş, == ben anladım javascript – Neal

+0

:-(: programcı tamsayı kongre

DÜZENLEME tutarsanız çift, BigDecimal, tamsayı türleri de onun davranışı ile kullanılabilir veya olabilir! – jgills

+1

Eğer öyleyse, bir yanıt gönderin ve geçerli olarak işaretleyin böylece aynı sıkıntıya sahip insanlar deneyimlerinizden yararlanabilirler – tommus

cevap

1

Bunu deneyin.

double percent=12.34; 
System.out.printf("%.2f%%", percent); 
// or in different convention "percent as number *100" 
System.out.printf("%.2f%%", percent*100.0); 

DÜZENLEME: Sizin Soru ikiye ayrılabilir:

  1. Sözleşmesi hangi numaralar (normal veya yüzde 100 ölçekli *) kullanılır dize

  2. için

  3. Gerçek biçimlendirme

BTW Kodunuz uzun ve FORMATTING için çok az şey var.

Java'nın yüzde değerleri için özel bir türü yoktur. Türleri: teşekkürler Kostis Aivalis virgül :)

+0

Biçim dizesi ile değişken arasında virgül ekleyin: System.out.printf ("%. 2f %%", yüzde); –

+0

@CostisAivalis teşekkürler –