2016.02.15

Javaプログラミング

無限大∞

無限大(Infinity)

計算の結果がとなるとき、その値をInfinityと表現します。

具体的には、値を0で割るとInfinityが返ります。

	10.0/0.0=Infinity

Javaソースコード - 数値を0.0で割った結果を表示

以下のJavaソースコードは、値を0.0で割った結果を表示するものです。

CalcError3.java

001
002
003
004
005
006
007
008
009
010
011
public class CalcError3 {
	public static void main( String[] args ) {
		double a, b, c;
		
		a = 10.0;
		b =  0.0;
		c = a / b;

		System.out.println( a + "/" + b + "=" + c );
	}
}

コンパイル ソースコードが「ANSI」の場合

C:\talavax\javasample>javac -encoding sjis CalcError3.java

コンパイル ソースコードが「UTF-8」の場合

C:\talavax\javasample>javac CalcError3.java

CalcError3を実行

C:\talavax\javasample>java CalcError3

実行結果

10.0/0.0=Infinity

10.0を0.0で割ると無限大になるので、計算結果が「Infinity」になります。

Javaソースコード - 無限大かどうかを判定

次のJavaソースコードは、計算結果が無限大(Infinity)かどうかを判定するメソッドを使ったサンプルです。

CalcError4.java

001
002
003
004
005
006
007
008
009
010
011
012
013
014
public class CalcError4 {
	public static void main( String[] args ) {
		double a, b, c;
		
		a = 10.0;
		b =  0.0;
		c = a / b;

		if ( true == Double.isInfinite( c ) )
			System.out.println( "計算結果が∞です" );
		else
			System.out.println( a + "/" + b + "=" + c );
	}
}

コンパイル ソースコードが「ANSI」の場合

C:\talavax\javasample>javac -encoding sjis CalcError4.java

コンパイル ソースコードが「UTF-8」の場合

C:\talavax\javasample>javac CalcError4.java

CalcError4を実行

C:\talavax\javasample>java CalcError4

実行結果

計算結果が∞です

以下が、無限大かどうか判定するメソッドです。

Double.isInfiniteメソッド

public static boolean Double.isInfinite( double a )
・引数aで指定した値が無限大(∞)であるかを判定します。

  パラメータ a : double型の数値

  戻り値     Infinityであればtrue、Infinityでなければfalse

Float.isInfiniteメソッド

public static boolean Float.isInfinite( float a )
・引数aで指定した値が無限大(∞)であるかを判定します。

  パラメータ a : float型の数値

  戻り値     Infinityであればtrue、Infinityでなければfalse

ここでは、値を0で割ると結果が無限大であるかを判定する内容を説明していますが、実際のプログラムを作るときには、割る値の絶対値が0に限りなく近ければ、割り算を行わないようにしてください。プログラム言語の種類によってプログラムが停止することがあります。

Javaソースコード - 計算結果が無限大になるのを防ぐ

以下のソースを見てください。double型変数eに0と判定するための値を代入し、割る値の絶対値がeより小さい場合に割り算を行わないようにしています。eの値は作成するプログラムの内容によって変えてください。また、以下の例はdouble型割り算なので変数eで判定をしていますが、整数型の場合は割る値が0であれば計算しないようにしてください。具体的に、その条件式は( 0 == 割る値)で、この条件式trueのときは割り算をしないでください。

CalcError5.java

001
002
003
004
005
006
007
008
009
010
011
012
013
014
015
016
017
018
019
public class CalcError5 {
	public static void main( String[] args ) {
		double a, b, c, e;

		e = 0.00000001;	// ほぼ0と判定する値

		// 割り算		
		a = 10.0;
		b = 0.000000001;

		// 割り算してよいか判定
		if ( Math.abs( b ) < e )
			System.out.println( "割り算を中止しました!" );
		else {
			c = a / b;
			System.out.println( "c=" + a + "/" + b + "=" + c );
		}
	}
}

コンパイル ソースコードが「ANSI」の場合

C:\talavax\javasample>javac -encoding sjis CalcError5.java

コンパイル ソースコードが「UTF-8」の場合

C:\talavax\javasample>javac CalcError5.java

CalcError5を実行

C:\talavax\javasample>java CalcError5

実行結果

割り算を中止しました!

割る数である変数bの絶対値0.000000001が、変数eの値.00000001より小さいので割り算を中止しています。

Math.absメソッド

public static int Math.abs( int a )
public static long Math.abs( long a )
public static float Math.abs( float a )
public static double Math.abs( double a )
public static int Math.abs( byte a )
public static int Math.abs( short a )
・引数aに指定した数値の絶対値を返します。

  パラメータ a : 絶対値を求めたい数値

  戻り値     aの絶対値を返します。
  戻りの変数型は、基本的に引数と同じ変数型と考えてよいです。

以上です。

関連コンテンツ

Javaの学習に役立つソースコードを多数紹介しています。是非、ご覧ください。

2022.09.10

プログラミングで使う変数って何?

2020.03.23

数値型の変数の最小値・最大値がプログラムで取得でします。

2016.01.20

整数型の変数に8進数を代入する記述の仕方を説明します。

2017.05.16

数値として表せない計算結果はどうなる?

2016.02.15

各種データ型の変数に値を代入しない場合、変数の初期値は?

2024.01.18

各種データ型の変数にnullが代入できるかを確認しました。

2024.01.23

基本的な計算である足し算(加法)/引き算(減法)/掛け算(乗法)/割り算(除法)を行うプログラム作成。

2020.03.23

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

2020.03.23

1.0をxで割る計算式で、計算結果が∞(無限大)になるxを求めます。

2024.05.19

数学に関係するJavaのメソッドやソースコードなどを紹介しています。

2022.10.25

変数やクラスに格納されている値をコンソール出力する方法は?

2020.03.23

プログラムの最初に実行されるメソッドは?

2022.12.13

Javaのプログラムを書いてみませんか?プログラムの書き方をくわしく説明しています。

2020.03.23

「Javaソースコード」から実行可能な「オブジェクトコード」に変換する方法をくわしく説明しています。

2020.03.23

条件式を判断して処理を分岐する方法を詳しく説明しています。

2023.03.20

プログラミング言語とは?種類や特徴について説明しています。

2022.08.03

メソッドの定義方法を詳しく解説しています。Javaのサンプルソースコードを使った説明もあります。

2020.03.23

絶対値の意味と、Math.absメソッドの使い方をソースコードを使って詳しく解説しています。

2020.03.23

自然数と整数って何が違う?

2020.03.23

割り算で「割り切れる」、「割り切れない」ってどういうこと?

「ゆるゆるプログラム」のコンテンツを紹介しています。興味のある方はこの記事をご覧ください。

2020.03.23

Javaを使った簡単な応用プログラム(生年月日から年齢を計算プログラムなど)を紹介しています。

2022.07.07

Swingパッケージを使ってグラフィック表示を行う方法を解説しています。

2020.03.23

画像フォーマット形式・色・大きさ・傾きなどの変更、特定の図形(文字・記号など)を見つけたり、取り出したりする画像処理について詳しく解説。

2015.11.29

三角形、台形、円などいろいろな図形の面積を計算するプログラムを紹介しています。詳しくは、記事をご覧ください。

2021.05.18

配列を使うJavaソースコードを多数紹介しています。

2021.05.18

繰り返し処理を使ったJavaのソースコードサンプルを紹介しています。

2020.03.23

StringクラスとStringBuilderクラスを利用したプログラミングの仕方を紹介しています。

2016.12.16

日本で使われてきた伝統文様「和柄」について解説しています。

2022.07.27

プログラミング、ITに関する用語をまとめています。

2022.10.17

Math.cosメソッドとMath.sinメソッドを使ってtanθを計算する方法を解説しています。

2024.05.16

値上げ後の値段は、値上げ前の値段と比べてどのくらい上がった

2024.06.19

単位ベクトルの意味と、単位ベクトルの求め方を解説しています。

2020.03.23

広告