该程序基本上使用文本文件,读取数据和文件。执行功能:
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(" ");
}
我想将百分比值格式化为2位小数,但因为它在while循环中,所以我无法使用printf。
答案 0 :(得分:10)
Elliot的答案当然是正确的,但为了完整性,'值得注意的是,如果您不想立即打印该值,而是将String保留用于其他用途,则可以使用DecimalFormat
类:
DecimalFormat df = new DecimalFormat("##.##%");
double percent = (mark / tm);
String formattedPercent = df.format(percent);
答案 1 :(得分:9)
您可以使用格式化输出,例如
System.out.printf("Percentage In Exam: %.2f%%%n", percent);
Formatter syntax将精度描述为
<强>精密强>
对于一般参数类型,precision是要写入输出的最大字符数。
对于浮点转换'e','E'和'f',精度是小数分隔符后面的位数。如果转换为“g”或“G”,则精度是舍入后得到的幅度中的总位数。如果转换为'a'或'A',则不得指定精度。
双倍%%
成为文字百分比,而%n
是换行符。
答案 2 :(得分:2)
您可以使用String.format
来完成System.out.println(String.format("%s%.2f%s","Percentage In Exam: " ,percent,"%"));
答案 3 :(得分:0)
最简单的方法:
System.out.println(Math.floor(percent*100)/100);
答案 4 :(得分:0)
最好通过NumberFormat.getInstance(Locale locale)
并使用setMinimumFractionDigits
方法(以及其他方法)获取您的百分比格式化程序。
答案 5 :(得分:0)
如果数字已经在两个小数位,最简单的方法是将数字连接成一个字符串,如下所示:
System.out.println("" +percent+ "%");
答案 6 :(得分:0)
NumberFormat percentageFormat = NumberFormat.getPercentInstance();
percentageFormat.setMinimumFractionDigits(2);