/演算子
日本語 | 割る演算子 |
英語 | slash operator |
ふりがな | すらっしゅえんざんし |
フリガナ | スラッシュエンザンシ |
割り算を行う演算子。
二項演算子のひとつ。
計算用演算子。整数値や実数値を文字通り「割る」ことができる。
左オペランドと右オペランドを割った結果が戻り値として返される。割った結果は両オペランドには反映されない。
boolean型を除くプリミティブ型で使用できる。
両オペランドがint型等整数値型の場合、返される値の型は同じく整数値型となる。
その際、計算結果に小数が含まれていても切り捨てられるため注意。
オペランドのうちどちらかがdouble型等浮動小数点型であれば、返される値の型は浮動小数点型となる。
そのため、整数値型同士の割り算でも、どちらか一方のオペランドを浮動小数点型にキャストすることで小数点も含まれた値が返される。
ただし、浮動小数点型は丸め誤差を生むため、正確な値を返さないこともある。
割り算で正確な値を計算したい場合にはBigDecimalクラスの使用を勧める。
二項演算子のひとつ。
計算用演算子。整数値や実数値を文字通り「割る」ことができる。
左オペランドと右オペランドを割った結果が戻り値として返される。割った結果は両オペランドには反映されない。
boolean型を除くプリミティブ型で使用できる。
両オペランドがint型等整数値型の場合、返される値の型は同じく整数値型となる。
その際、計算結果に小数が含まれていても切り捨てられるため注意。
オペランドのうちどちらかがdouble型等浮動小数点型であれば、返される値の型は浮動小数点型となる。
そのため、整数値型同士の割り算でも、どちらか一方のオペランドを浮動小数点型にキャストすることで小数点も含まれた値が返される。
ただし、浮動小数点型は丸め誤差を生むため、正確な値を返さないこともある。
割り算で正確な値を計算したい場合にはBigDecimalクラスの使用を勧める。
参考サイト
- (参考サイトはありません)
// Sample.java
public class Sample
{
public static void main( String[] args )
{
// 整数値の割り算。
System.out.println( 4 / 2 );
// 2
// 変数を使用した場合。
int intL = 20;
int intR = 5;
System.out.println( intL );
System.out.println( intR );
System.out.println( intL / intR );
System.out.println( intL );
System.out.println( intR );
// 20
// 5
// 4
// 20
// 5
// このように、/演算子の結果は、オペランドには書き込まれません。
// /演算子の演算結果が戻り値として返されるのでそれを受け取ります。
int i = intL / intR;
System.out.println( i );
// 4
// int型同士の割り算の場合、返される型はint型なので、
// たとえ小数点が出ても小数点は切り捨てられます。
double d = intL / 8;
System.out.println( d );
// 2.0
// この場合、どちらかの型をdouble型かfloat型にキャストすることで
// 実数の割り算と見なされます。
d = (double)intL / 8;
System.out.println( d );
// 2.5
// 浮動小数点型同士であれば当然結果は浮動小数点型となります。
d = 10.0 / 8.0;
System.out.println( d );
// 1.25
// 0で割ろうとするとArithmeticException例外が投げられます。
try
{
System.out.println( 3 / 0 );
}
catch( ArithmeticException e )
{
e.printStackTrace();
// java.lang.ArithmeticException: / by zero
// at Sample.main(Sample.java:32)
}
// クラスには使えません。
// コンパイルエラーになります。
Integer integerL = new Integer( 100 );
Integer integerR = new Integer( 300 );
// System.out.println( integerL / integerR );
// コンパイルエラー:
// 演算子 / は引き数の型 java.lang.Integer, java.lang.Integer で未定義です。
}
}
public class Sample
{
public static void main( String[] args )
{
// 整数値の割り算。
System.out.println( 4 / 2 );
// 2
// 変数を使用した場合。
int intL = 20;
int intR = 5;
System.out.println( intL );
System.out.println( intR );
System.out.println( intL / intR );
System.out.println( intL );
System.out.println( intR );
// 20
// 5
// 4
// 20
// 5
// このように、/演算子の結果は、オペランドには書き込まれません。
// /演算子の演算結果が戻り値として返されるのでそれを受け取ります。
int i = intL / intR;
System.out.println( i );
// 4
// int型同士の割り算の場合、返される型はint型なので、
// たとえ小数点が出ても小数点は切り捨てられます。
double d = intL / 8;
System.out.println( d );
// 2.0
// この場合、どちらかの型をdouble型かfloat型にキャストすることで
// 実数の割り算と見なされます。
d = (double)intL / 8;
System.out.println( d );
// 2.5
// 浮動小数点型同士であれば当然結果は浮動小数点型となります。
d = 10.0 / 8.0;
System.out.println( d );
// 1.25
// 0で割ろうとするとArithmeticException例外が投げられます。
try
{
System.out.println( 3 / 0 );
}
catch( ArithmeticException e )
{
e.printStackTrace();
// java.lang.ArithmeticException: / by zero
// at Sample.main(Sample.java:32)
}
// クラスには使えません。
// コンパイルエラーになります。
Integer integerL = new Integer( 100 );
Integer integerR = new Integer( 300 );
// System.out.println( integerL / integerR );
// コンパイルエラー:
// 演算子 / は引き数の型 java.lang.Integer, java.lang.Integer で未定義です。
}
}
// Sample.java public class Sample { public static void main( String[] args ) { // 整数値の割り算。 System.out.println( 4 / 2 ); // 2 // 変数を使用した場合。 int intL = 20; int intR = 5; System.out.println( intL ); System.out.println( intR ); System.out.println( intL / intR ); System.out.println( intL ); System.out.println( intR ); // 20 // 5 // 4 // 20 // 5 // このように、/演算子の結果は、オペランドには書き込まれません。 // /演算子の演算結果が戻り値として返されるのでそれを受け取ります。 int i = intL / intR; System.out.println( i ); // 4 // int型同士の割り算の場合、返される型はint型なので、 // たとえ小数点が出ても小数点は切り捨てられます。 double d = intL / 8; System.out.println( d ); // 2.0 // この場合、どちらかの型をdouble型かfloat型にキャストすることで // 実数の割り算と見なされます。 d = (double)intL / 8; System.out.println( d ); // 2.5 // 浮動小数点型同士であれば当然結果は浮動小数点型となります。 d = 10.0 / 8.0; System.out.println( d ); // 1.25 // 0で割ろうとするとArithmeticException例外が投げられます。 try { System.out.println( 3 / 0 ); } catch( ArithmeticException e ) { e.printStackTrace(); // java.lang.ArithmeticException: / by zero // at Sample.main(Sample.java:32) } // クラスには使えません。 // コンパイルエラーになります。 Integer integerL = new Integer( 100 ); Integer integerR = new Integer( 300 ); // System.out.println( integerL / integerR ); // コンパイルエラー: // 演算子 / は引き数の型 java.lang.Integer, java.lang.Integer で未定義です。 } }