数値と小数の書式
幅、精度、パディングを学びます。
「数値と小数の書式」はCoddyKit上の無料Java Academyレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはJava Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Java Academyコースには全4レッスンが含まれています。
数値の書式設定
数値には、固定桁数の小数、埋め文字、符号などの特別な扱いが必要になることがあります。printf の指定子を使うと、それらを制御できます。
このレッスンでは、整数用の %d と浮動小数点値用の %f に注目します。
%f指定子
%f は、double や float などの浮動小数点数を書式設定します。
デフォルトでは、%f は小数点以下を6桁表示します。通常は、これより少ない桁数で十分なことが多いでしょう。
public class Main {
public static void main(String[] args) {
System.out.printf("%f\n", 3.14);
}
}.2による小数桁数の制御
% と f の間に .2 のような精度を追加すると、小数桁数を制限できます。%.2f は「小数点以下2桁」を意味します。
値は単に切り捨てられるのではなく、丸められます。
public class Main {
public static void main(String[] args) {
System.out.printf("%.2f\n", 3.14159);
}
}printfで丸める
精度を指定すると、最も近い値に丸められます。%.0f は小数をまったく表示せず、整数に丸めます。
これは数値の表示方法だけを変更し、保存されている値は変更しない点に注意してください。
public class Main {
public static void main(String[] args) {
System.out.printf("%.0f\n", 2.7);
}
}金額の例
通貨では、ほとんどの場合、小数点以下2桁を使います。%.2f は価格の表示に最適です。
テキストと組み合わせて、整った1行を作成できます。
public class Main {
public static void main(String[] args) {
double price = 9.5;
System.out.printf("Total: $%.2f\n", price);
}
}最小幅
% と文字の間に数値を指定すると、最小幅が設定されます。%5d は、少なくとも5文字分の幅を持つフィールドに整数を出力し、左側をスペースで埋めます。
これは列を揃えるための第一歩です。
public class Main {
public static void main(String[] args) {
System.out.printf("[%5d]\n", 42);
}
}小数を含む幅指定
幅と精度は組み合わせられます。%8.2f は「幅を少なくとも8文字にし、小数点以下2桁にする」という意味です。
幅には、数字、小数点、埋められたスペースが含まれます。
public class Main {
public static void main(String[] args) {
System.out.printf("[%8.2f]\n", 3.5);
}
}ゼロ埋め
% の直後に 0 を置くと、スペースではなくゼロで埋められます。%05d は左側をゼロで埋めます。
固定長の ID や、09 のような時計の数字に便利です。
public class Main {
public static void main(String[] args) {
System.out.printf("%05d\n", 42);
}
}桁区切り
カンマフラグ %,d を使うと、数字を区切り記号でグループ化でき、大きな数値が読みやすくなります。
%f にも使えます。たとえば %,.2f のように指定します。
public class Main {
public static void main(String[] args) {
System.out.printf("%,d\n", 1000000);
}
}プラス記号を表示する
+ フラグを使うと、正の数にも先頭の符号が必ず表示されます。%+d は 5 ではなく +5 を出力します。
増加と減少を明確に表示したい場合に便利です。
public class Main {
public static void main(String[] args) {
System.out.printf("%+d and %+d\n", 5, -3);
}
}%xによる16進数
10進数以外にも、%x は整数を16進数で、%o は8進数で出力します。
主に使うのは %d と %f ですが、ほかの基数も存在することを知っておくとよいでしょう。
public class Main {
public static void main(String[] args) {
System.out.printf("%x\n", 255);
}
}理解度チェック
適切な指定子を選びましょう。
まとめ
%.2f で小数桁数を制御し、%5d のように幅を設定し、%05d でゼロ埋めし、%,d で桁をグループ化し、%+d で符号を必ず表示できるようになりました。
次は、書式設定したテキストを String に格納します。
よくある質問
「数値と小数の書式」レッスンは無料ですか?
はい。「数値と小数の書式」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Java Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Java Academyコースには全4レッスンが含まれています。
「数値と小数の書式」で何を学びますか?
幅、精度、パディングを学びます。 ブラウザで直接実行するハンズオンコードでJava Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Java Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのJava Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。
「数値と小数の書式」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このJava Academyレッスンでコードを書いて実行できますか?
はい。すべてのJava Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- printfの基本
- 数値と小数の書式
- String.format
- 表を整列させる