今回はpaiza Dランク「1 つの実数を出力 3 」
printfメソッドの使い方を学んだ。
問題
実数 N が入力されます。N を丸めて小数第 3 位まで出力してください。
また、N の小数部が小数第 3 位に満たない場合は 0 で埋めて出力してください。
なお、小数第 4 位が 5 になることはありません。
自然な丸め処理を行って出力すると正解になります。
入力例 3.141692
出力例 3.142
解答
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
double n = sc.nextDouble();
System.out.printf("%.3f\n", n);
sc.close();
}
}
- nextDouble メソッドを用いて入力を実数型で受け取ります。
- Java には、書式付き出力メソッドとして
printf
メソッドが用意されています。 %
,.3f
,f
,\n
について順に説明します。- 【
%
について 】- これは「これから書式を指定していきます」という開始を表す記号です。
- 【
.3f
について 】- これは「小数点以下の桁数」を 3 に指定することを意味します。
- 小数点以下の桁数が 4 以上の場合、小数第 4 位で四捨五入されます。
- 一般的な説明をすると、
.xf
で、小数点以下の桁数をx
にして出力します。 - ここで
x
は 0 以上の整数である必要があります。
- 【
f
について 】- これは「出力する値の型」が小数 (小数点数) であることを意味します。
- 他にも
d
が 10 進数、x
が 16 進数、s
が文字列、など様々あるので、調べてみると面白いかもしれません。
- 【
\n
について 】- これは「改行」を意味します。
- 文字列の中で「改行」を意味する特殊な文字列です。
- なぜ、
\n
が必要かというと、printf
メソッドは末尾で「改行」を出力しないからです。 - 問題文には「末尾に改行を入れ」とあるので
\n
が必要になります。
- 【
printfメソッドの使い方
System.out.printf(書式, 引数1, 引数2, 引数3…)
このメソッドは文字列や数値などを指定した書式で画面に出力することができる。
例えば、10000という値を10,000とカンマ区切りで整形し、さらに単位の「円」を加えて10,000円と画面に出力するとき。
書式指定子の一覧表はSMURAIENGINEERさんを参考に
コメント