Java 0.5単位で切り上げ・切り捨てする方法

Javaで0.5単位で切り上げ・切り捨てする方法です。

Java 0.5単位で切り上げ・切り捨てする方法

やりたいことはこうです。

元の値切り上げ切り捨て
0.40.50
0.81.00.5
1.31.51.0
1.82.01.5

ここでは Javaで0.5単位で切り上げ・切り捨てする方法 を紹介します。


0.5単位で切り上げ・切り捨て

計算方法はこうです。

  • 切り上げ:2倍した後、四捨五入し、さらに2で割る。
  • 切り捨て:2倍した後、切り捨てし、さらに2で割る。

コードを書くとこうなります。

System.out.println("### 切り上げ ###");
System.out.println( (new BigDecimal(0.4)).multiply(new BigDecimal(2)).setScale(0, BigDecimal.ROUND_HALF_UP).divide(new BigDecimal(2)) ); // 0.5
System.out.println( (new BigDecimal(0.8)).multiply(new BigDecimal(2)).setScale(0, BigDecimal.ROUND_HALF_UP).divide(new BigDecimal(2)) ); // 1.0
System.out.println( (new BigDecimal(1.3)).multiply(new BigDecimal(2)).setScale(0, BigDecimal.ROUND_HALF_UP).divide(new BigDecimal(2)) ); // 1.5
System.out.println( (new BigDecimal(1.8)).multiply(new BigDecimal(2)).setScale(0, BigDecimal.ROUND_HALF_UP).divide(new BigDecimal(2)) ); // 2.0

System.out.println("### 切り捨て ###");
System.out.println( (new BigDecimal(0.4)).multiply(new BigDecimal(2)).setScale(0, BigDecimal.ROUND_DOWN).divide(new BigDecimal(2)) ); // 0.0
System.out.println( (new BigDecimal(0.8)).multiply(new BigDecimal(2)).setScale(0, BigDecimal.ROUND_DOWN).divide(new BigDecimal(2)) ); // 0.5
System.out.println( (new BigDecimal(1.3)).multiply(new BigDecimal(2)).setScale(0, BigDecimal.ROUND_DOWN).divide(new BigDecimal(2)) ); // 1.0
System.out.println( (new BigDecimal(1.8)).multiply(new BigDecimal(2)).setScale(0, BigDecimal.ROUND_DOWN).divide(new BigDecimal(2)) ); // 1.5

誤差が出ないよう正確に計算するため BigDecimalクラス を用いて計算しています。

まとめ

Javaで0.5単位で切り上げ・切り捨てする方法を紹介しました。

0.5単位の計算って意外と多いと思うんですよね。勤務表とか30分を0.5hとしたりしますからね。皆さんも試してみてください。

おつかれさまでした。

この記事がお役に立ちましたら シェア をお願いいたします。