0

次の丸めモードのうち、double を int にキャストするのはどれですか?

指定された丸めモードで入力を 1 桁に丸めた結果

Input                                                   HALF_EVEN
Number  UP      DOWN    CEILING FLOOR   HALF_UP HALF_DOWN       UNNECESSARY
5.5     6       5       6       5       6       5       6       throw ArithmeticException
2.5     3       2       3       2       3       2       2       throw ArithmeticException
1.6     2       1       2       1       2       2       2       throw ArithmeticException
1.1     2       1       2       1       1       1       1       throw ArithmeticException
1.0     1       1       1       1       1       1       1       1
-1.0    -1      -1      -1      -1      -1      -1      -1      -1
-1.1    -2      -1      -1      -2      -1      -1      -1      throw ArithmeticException
-1.6    -2      -1      -1      -2      -2      -2      -2      throw ArithmeticException
-2.5    -3      -2      -2      -3      -3      -2      -2      throw ArithmeticException
-5.5    -6      -5      -5      -6      -6      -5      -6      throw ArithmeticException

引用した列挙型のプリミティブのキャストとは関係がないことはわかっていますが、この表は double が int にダウンキャストされる方法を確実にカバーしています。リストのどれがそれを行いますか? 前もって感謝します。

4

1 に答える 1

3

次の丸めモードのうち、double を int にキャストするのはどれですか?

DOWNそれは単にゼロに向かって切り捨てられます-あなたの質問で紛らわしい名前で表されます。

JLS のセクション 5.1.3から:

浮動小数点数から整数型 T への縮小変換には、次の 2 つの手順が必要です。

最初のステップでは、次のlongようTint、浮動小数点数が に変換されます。Tbyteshortcharint

  • 浮動小数点数が NaN の場合 (§4.2.3)、変換の最初のステップの結果は int または long 0 です。

  • それ以外の場合、浮動小数点数が無限大でない場合、浮動小数点値は整数値 V に丸められ、IEEE 754 ゼロ方向への丸めモード (§4.2.3) を使用してゼロ方向に丸められます。次に、2 つのケースがあります。

[ ... ]

(残りは質問に関係ありません。)

于 2013-09-12T13:17:37.043 に答える