2016-05-10 4 views

答えて

2

これはJavaの場合と同じです。
重要な点は、Groovyが数値をオブジェクトに変換して演算子を処理する方法です。数値が内部BigDecimalのインスタンスとして使用され、除算演算子が例外をスローBigDecimal.divide(BigDecimal)として実装されているようにGroovyで

1.0/0は、ArithmeticExceptionをスロー。数字は内部として明示的に要求Floatのインスタンスとして使用され、従って、除算演算子はInfinityを返す標準的なJava /あるとして、Javaのよう

グルービーで

1f/0fは、Infinityを返します。

ArithmeticException、第二リターンInfinityをスローするJava

System.out.println(new BigDecimal(1f).divide(new BigDecimal(0f))); 
System.out.println(1f/0f); 

最初のもの二行と比較してください。