Java
 Computer >> コンピューター >  >> プログラミング >> Java

Javaで数値を小数点以下n桁に丸める方法を徹底解説

この記事では、Javaを使って数値を小数点以下n桁に丸める方法について解説します。小数値の丸め処理には、CEIL(切り上げ)やFLOOR(切り捨て)関数が使われるほか、JavaではDecimalFormatクラスとRoundingModeを組み合わせる方法が広く利用されています。

入出力の例

今回作成するプログラムは、次のように動作します。

入力:

3.1415

出力:

3.2

アルゴリズム

処理の流れは以下の通りです。

ステップ1 - 開始
ステップ2 - float型の変数(my_input)を宣言する
ステップ3 - ユーザーから値を入力してもらう、または値をあらかじめ定義する
ステップ4 - DecimalFormatとRoundingMode.CEILINGを使って、数値を指定した小数点以下の桁数に丸め、結果を保存する
ステップ5 - 結果を表示する
ステップ6 - 終了

例1:Scannerでユーザー入力を受け付ける場合

この例では、Scannerクラスを使ってユーザーが入力した値を丸めます。オンラインの実行環境(コーディンググラウンドツール)でも、そのまま動作を確認できます。

import java.math.RoundingMode;
import java.text.DecimalFormat;
import java.util.Scanner;
public class DecimalFormatting {
   public static void main(String[] args) {
      float my_input;
      System.out.println("Required packages have been imported");
      Scanner my_scanner = new Scanner(System.in);
      System.out.println("A scanner object has been defined ");
      System.out.print("Enter the first binary number : ");
      my_input = my_scanner.nextFloat();
      DecimalFormat roundup_decimal = new DecimalFormat("#.#");
      roundup_decimal.setRoundingMode(RoundingMode.CEILING);
      System.out.println("The rounded up value of " + my_input + " is ");
      System.out.println(roundup_decimal.format(my_input));
   }
}

出力結果

Required packages have been imported
A scanner object has been defined
Enter the first binary number : 3.1415
The rounded up value of 3.1415 is
3.2

例2:値をあらかじめ定義しておく場合

この例では、丸めたい数値をコード内で直接定義し、その値を丸めた結果をコンソールに表示します。

import java.math.RoundingMode;
import java.text.DecimalFormat;
public class DecimalFormatting {
   public static void main(String[] args) {
      System.out.println("Required packages have been imported");
      double my_input = 3.1415;
      System.out.println("The decimal number is defined as " + my_input);
      DecimalFormat roundup_decimal = new DecimalFormat("#.#");
      roundup_decimal.setRoundingMode(RoundingMode.CEILING);
      System.out.println("The rounded up value of " + my_input + " is ");
      System.out.println(roundup_decimal.format(my_input));
   }
}

出力結果

Required packages have been imported
The decimal number is defined as 3.1415
The rounded up value of 3.1415 is
3.2

ポイント解説

サンプルコードで使用している主な要素は次の通りです。

  • new DecimalFormat("#.#"):パターン「#.#」を指定すると、小数点以下1桁に整形されます。「#.##」に変更すれば小数点以下2桁、「#.###」なら3桁に対応できます。
  • RoundingMode.CEILING:正の無限大方向へ丸めるモードで、切り上げ(CEIL)に相当します。逆に切り捨てたい場合はRoundingMode.FLOORを指定してください。
  • format()メソッド:数値をパターンに従って文字列として整形し、指定した桁数に丸めた結果を返します。

このように、DecimalFormatとRoundingModeを組み合わせれば、数行のコードで柔軟な丸め処理を実現できます。用途に応じてパターンや丸めモードを変更しながら、ぜひいろいろなケースで試してみてください。

  1. Javaで2つの数値を加算するプログラムの書き方【初心者向けサンプルコード付き】

    この記事では、Javaで2つの数値を加算(足し算)する方法について詳しく解説します。数値の加算は、基本的な「+」演算子を使用することで簡単に実装できます。以下に具体的な例を示します。入力例input_1 : 10 input_2 : 15出力例Sum : 25アルゴリズム2つの数値を加算するプログラムは、以下の手順で実装します。Step1- 開始 Step 2- 3つの整数型変数 input_1、input_2、sum を宣言する Step 3- ユーザーに2つの整数値の入力を促す/整数値を定義する Step 4- 値を読み込む Step 5- 加算演算子(+)を使用して2つの値を足し合わせる

  2. Javaで文字列を出力するプログラムの書き方|サンプルコード付きで解説

    この記事では、Javaで文字列を出力する方法について詳しく解説します。文字列(String)とは、文字や英数字が組み合わさって構成されるデータのことです。最も簡単に文字列を作成するには、次のように記述します。String str = Welcome to the club!!!コード内に文字列リテラルが現れると、コンパイラはその値を持つStringオブジェクトを自動的に生成します。この例では「Welcome to the club!!!」という文字列オブジェクトが作成されます。Javaにおける文字列の扱い他のオブジェクトと同様に、newキーワードとコンストラクタを使ってStringオブジェクト