Java 0.5単位で切り上げ・切り捨てする方法
Javaで0.5単位で切り上げ・切り捨てする方法です。
やりたいことはこうです。
元の値 | 切り上げ | 切り捨て |
---|---|---|
0.4 | 0.5 | 0 |
0.8 | 1.0 | 0.5 |
1.3 | 1.5 | 1.0 |
1.8 | 2.0 | 1.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としたりしますからね。皆さんも試してみてください。
おつかれさまでした。