ゆるゆるプログラミング

・割り算(除算)について

Javaの演算子'/'を使って割り算を行った結果と注意点などについて説明します。

いくつかのJavaソースコードのサンプルを使って説明していきます。

”DivisionSample1.java”は、整数どうしの割り算を行った結果を表示するものです。整数どうし割り算の結果は小数点以下が切り捨てられた整数になります。

DivisionSample1.java
001:    public class DivisionSample1 {
002:    	public static void main( String[] args ) {
003:    		int ans;
004:    		int a, b;
005:    
006:    		// 10を3で割る
007:    		a = 10;
008:    		b = 3;
009:    		ans = a / b;
010:    		System.out.println( a + "/" + b + "=" + ans );
011:    
012:    		// 9を10で割る
013:    		a = 9;
014:    		b = 10;
015:    		ans = a / b;
016:    		System.out.println( a + "/" + b + "=" + ans );
017:    
018:    		// -10を3で割る
019:    		a = -10;
020:    		b = 3;
021:    		ans = a / b;
022:    		System.out.println( a + "/" + b + "=" + ans );
023:    	}
024:    }

DivisionSample1.javaの出力結果


10/3=3
9/10=0
-10/3=-3

結果から小数点以下が切り捨てられていることが分かります。

”DivisionSample2.java”は、整数を0で割ったらどうなるかを試すものです。整数0で割るとエラーを表示してプログラムを強制終了します。

DivisionSample2.java
001:    public class DivisionSample2 {
002:    	public static void main( String[] args ) {
003:    		int ans;
004:    		int a, b;
005:    
006:    		// 10を0で割る
007:    		a = 10;
008:    		b = 0;
009:    		ans = a / b;
010:    		System.out.println( a + "/" + b + "=" + ans );
011:    	}
012:    }

DivisionSample2.javaの出力結果


Exception in thread "main" java.lang.ArithmeticException: / by zero
at DivisionSample2.main(DivisionSample2.java:9)

”DivisionSample3.java”は、整数を0で割ってもプログラムを強制終了しないようにしたものです。

DivisionSample3.java
001:    public class DivisionSample3 {
002:    	public static void main( String[] args ) {
003:    		int ans;
004:    		int a, b;
005:    
006:    		// 10を0で割る
007:    		a = 10;
008:    		b = 0;
009:    
010:    		try {
011:    			ans = a / b;
012:    			System.out.println( a + "/" + b + "=" + ans );
013:    		}
014:    		catch( ArithmeticException e ) {
015:    	                System.out.println("0で割ってはいけません"); 
016:    		}
017:    	}
018:    }

DivisionSample3.javaの出力結果


0で割ってはいけません

例外処理で強制終了しないようにしています。

”DivisionSample4.java”は、double型(浮動小数点)の割り算の結果を表示するものです。

DivisionSample4.java
001:    public class DivisionSample4 {
002:    	public static void main( String[] args ) {
003:    		double ans;
004:    		double a, b;
005:    
006:    		// 5.0を10.0で割る
007:    		a = 5.0;
008:    		b = 10.0;
009:    		ans = a / b;
010:    		System.out.println( a + "/" + b + "=" + ans );
011:    
012:    		// 10.0を0.0で割る
013:    		a = 10.0;
014:    		b = 0.0;
015:    		ans = a / b;
016:    		System.out.println( a + "/" + b + "=" + ans );
017:    
018:    		// -10.0を0.0で割る
019:    		a = -10.0;
020:    		b = 0.0;
021:    		ans = a / b;
022:    		System.out.println( a + "/" + b + "=" + ans );
023:    
024:    		// 0.0を0.0で割る
025:    		a = 0.0;
026:    		b = 0.0;
027:    		ans = a / b;
028:    		System.out.println( a + "/" + b + "=" + ans );
029:    	}
030:    }

DivisionSample4.javaの出力結果


5.0/10.0=0.5
10.0/0.0=Infinity
-10.0/0.0=-Infinity
0.0/0.0=NaN

0.0で割ると、割られる値が正(+)のとき'Infinity"、負(-)のとき'-Infinity"、0(ゼロ)のときNaNdouble型変数に格納されます。

■関連コンテンツ

変数について Javaで扱う変数について解説
無限大 Infinity 無限大(∞)について
非数値 NaN 非数値(数値ではない値)について
計算結果の表示 四則演算で計算した結果を表示するプログラムについて解説

■新着情報

2017.11.17 N値化 カラー画像をN値化する方法について解説
2017.11.16 最も近い値の取得 指定値に最も近い配列の値を取得する方法を解説
2017.10.02 アルファ値(透過) アルファ値(透過)について

■広告

法人向けのETC専用カード

~約8,000名の受講生と80社以上の導入実績~ 企業向けプログラミング研修ならCodeCamp

日本最大級ショッピングサイト!お買い物なら楽天市場

Topへ