Quote (lilwillis121 @ Sep 23 2013 03:18pm)
Thanks!
next issue completly unrelated i believe.
i need to format these outputs into a file and have the decimals line up and be limited to only 2 places however, i keep getting
Code
Exception in thread "main" java.util.IllegalFormatConversionException: f != java.lang.String
at java.util.Formatter$FormatSpecifier.failConversion(Formatter.java:4045)
at java.util.Formatter$FormatSpecifier.printFloat(Formatter.java:2761)
at java.util.Formatter$FormatSpecifier.print(Formatter.java:2708)
at java.util.Formatter.format(Formatter.java:2488)
at java.io.PrintWriter.format(PrintWriter.java:905)
at java.io.PrintWriter.printf(PrintWriter.java:804)
at deductions.main(deductions.java:67)
Code
outFile.printf("Name: " + fName + " " + lName + "\n");
outFile.printf("%8.2f", "Gross Amount $" + gross);
outFile.printf("%8.2f", "Federal Taxes: $" + (FEDERAL * gross) + "\n" );
outFile.printf("%8.2f", "State Taxes: $" + (STATE * gross) + "\n" );
outFile.printf("%8.2f", "Social Security Taxes: $" + (SSTAX * gross) + "\n" );
outFile.printf("%8.2f", "Medicare/ Medicade Taxes: $" + (MEDICARE * gross) + "\n");
outFile.printf("%8.2f", "Pension Plan: $" + (PENSION_PLAN * gross) + "\n" );
outFile.printf("%8.2f", "Insurance: $" + INSURANCE + "\n");
outFile.printf("%8.2f", "Net Pay: $" + (gross - TOTALTAXES) );
You are passing an object of type String into the format specifier %8.2f, which is expecting a float.
You could express the line:
Code
outFile.printf("%8.2f", "Gross Amount $" + gross);
As either of these:
Code
outFile.printf("%s%8.2f%s", "Gross Amount $", gross, "\n");
or
Code
outFile.printf("Gross Amount $%8.2f\n", gross);
This post was edited by Schwag on Sep 23 2013 08:35pm