This program is basically working with text files, reading the data & performing functions:
while(s.hasNext()){
name= s.next();
mark= s.nextDouble()
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.
It may be best to acquire your percent formatter through NumberFormat.getInstance(Locale locale)
and using the setMinimumFractionDigits
methods (and maybe the others).
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);