如何将百分比变量格式化为2位小数?

时间:2014-11-16 06:18:08

标签: java decimal number-formatting

该程序基本上使用文本文件,读取数据和文件。执行功能:

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。

7 个答案:

答案 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);