6
Math.roundを使用していますが、それは私に大きな値(2^32/2)-1を返さないことが分かっていますが、つまり2^64 ...下にコードスニペットがあります。Math.round MAX返される値
long bTmp = (long)Math.round(4294967296L);
System.out.println(bTmp);
System.out.println(Long.MAX_VALUE);
どの出力:
2147483647
9223372036854775807
私は何かが足りないのですか?
だけで行われているものにいくつかの情報を追加します:http://docs.oracle.com/javase/specs/jls/se7/html/jls-5.html#jls- 5.1.2デフォルトでは、longからfloatへの拡大があります。ダブルでビヘイビアを実行するには、キャストする必要があります。 –