This program is basically working with text files, reading the data & performing functions:
while(s.hasNext()){
name= s.next();
mark= s.nextDouble();
double percent= (mark / tm )*100 ;
System.out.println("Student Name : " +name );
System.out.println("Percentage In Exam: " +percent+"%");
System.out.println(" ");
}
I would like to format the percent value to 2 decimal places but since it's inside a while loop I cannot use the printf.
Elliot's answer is of course correct, but for completeness' sake it's worth noting that if you don't want to print the value immediately, but instead hold the String for some other usage, you could use the DecimalFormat
class:
DecimalFormat df = new DecimalFormat("##.##%");
double percent = (mark / tm);
String formattedPercent = df.format(percent);
You could use formatted output like,
System.out.printf("Percentage In Exam: %.2f%%%n", percent);
The Formatter syntax describes precision as
Precision
For general argument types, the precision is the maximum number of characters to be written to the output.
For the floating-point conversions 'e', 'E', and 'f' the precision is the number of digits after the decimal separator. If the conversion is 'g' or 'G', then the precision is the total number of digits in the resulting magnitude after rounding. If the conversion is 'a' or 'A', then the precision must not be specified.
The double percent %%
becomes a percent literal, and the %n
is a newline.
You can do it using String.format
System.out.println(String.format("%s%.2f%s","Percentage In Exam: " ,percent,"%"));
NumberFormat percentageFormat = NumberFormat.getPercentInstance();
percentageFormat.setMinimumFractionDigits(2);
ِEasiest way:
System.out.println(Math.floor(percent*100)/100);
It may be best to acquire your percent formatter through NumberFormat.getInstance(Locale locale)
and using the setMinimumFractionDigits
methods (and maybe the others).
If the number is already in two decimal places, the easiest way would be to concatenate the number into a string like so:
System.out.println("" +percent+ "%");
来源:https://stackoverflow.com/questions/26954443/how-do-i-format-my-percent-variable-to-2-decimal-places