このプログラムは基本的にテキストファイルを処理し、データを読み取り、機能を実行します。
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を使用できません。
エリオットの答えはもちろん正しいですが、完全を期すために、値をすぐに出力したくないが、代わりに文字列を他の使用法のために保持したい場合は、 DecimalFormat
クラス:
DecimalFormat df = new DecimalFormat("##.##%");
double percent = (mark / tm);
String formattedPercent = df.format(percent);
次のようなフォーマットされた出力を使用できます。
System.out.printf("Percentage In Exam: %.2f%%%n", percent);
フォーマッタ構文 はprecisionを次のように記述します
精度
一般的な引数タイプの場合、精度は出力に書き込まれる最大文字数です。
浮動小数点変換 'e'、 'E'、および 'f'の場合、精度は、小数点記号の後の桁数です。変換が「g」または「G」の場合、精度は丸め後の結果の大きさの合計桁数です。変換が「a」または「A」の場合、精度を指定してはなりません。
二重パーセント%%
はパーセントリテラルになり、%n
は改行です。
NumberFormat percentageFormat = NumberFormat.getPercentInstance();
percentageFormat.setMinimumFractionDigits(2);
あなたはString.formatを使用してそれを行うことができます
System.out.println(String.format("%s%.2f%s","Percentage In Exam: " ,percent,"%"));
est最も簡単な方法:
System.out.println(Math.floor(percent*100)/100);
NumberFormat.getInstance(Locale locale)
を介してパーセントフォーマッタを取得し、setMinimumFractionDigits
メソッド(およびその他のメソッド)を使用するのが最善の方法です。
数値がすでに小数点第2位にある場合、最も簡単な方法は、次のように数値を文字列に連結することです。
System.out.println("" +percent+ "%");