Vis*_*oon 13 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(" ");
}
Run Code Online (Sandbox Code Playgroud)
我想将百分比值格式化为2位小数,但因为它在while循环中,所以我不能使用printf.
Mur*_*nik 13
Elliot的答案当然是正确的,但为了完整起见,值得注意的是,如果您不想立即打印该值,而是将String保留用于其他用途,则可以使用DecimalFormat该类:
DecimalFormat df = new DecimalFormat("##.##%");
double percent = (mark / tm);
String formattedPercent = df.format(percent);
Run Code Online (Sandbox Code Playgroud)
Ell*_*sch 10
您可以使用格式化输出,如,
System.out.printf("Percentage In Exam: %.2f%%%n", percent);
Run Code Online (Sandbox Code Playgroud)
该格式化语法描述精度为
精确
对于一般参数类型,precision是要写入输出的最大字符数.
对于浮点转换'e','E'和'f',精度是小数分隔符后面的位数.如果转换为"g"或"G",则精度是舍入后得到的幅度中的总位数.如果转换为'a'或'A',则不得指定精度.
双百分比%%变为文字百分比,并且%n是换行符.
NumberFormat percentageFormat = NumberFormat.getPercentInstance();
percentageFormat.setMinimumFractionDigits(2);
Run Code Online (Sandbox Code Playgroud)