フロート関数をfloatに適用する方法、または整数を取得するためにdouble値を使用する方法。ダブル値を取得する方法:4.4497083717E10 浮動小数点:4.4497084E10浮動小数点:floor値をdouble :4.4497083717E10フロートのフロア:4.4497084416E10.フロアの結果は整数になる可能性がありますか?floatとdouble値のフロア関数
2
A
答えて
4
。床が整数になる可能性がありますか?
タイプの観点から - いいえ。 Math.floor
はdouble
を返すと宣言されているので、静的型のint
を返すことはありません。つまり、メソッドのドキュメントでは、が整数でに等しいことが宣言されています。返された結果をint
にキャストするだけで、いつも期待した結果が得られます。
(それはあなたの結果が範囲内にあると仮定すると、である。double
はint
を表すことができ、より大きな数字を保持することができます。技術的な詳細についてNarrowing primitive conversionsをチェックしてください。あなたはそれが常に賢明です保証するために、境界チェックあなたのデータにしたいことint
に変換。)
1
4.4497083717E10あなたはlong
にキャストしなければならないint
、あるには余りにも大きいです。
long型にキャストするとdouble型の全体が保持され、long型で表現できる値はMath.floor
と同じになります。すなわち
long l = (long) Math.floor(4.4497083717E10);
は、あなたが `` floor`後round`を適用する必要があります
long l = (long) 4.4497083717E10;
System.out.println((int) Math.floor(4.4497083717E10));
System.out.println((long) Math.floor(4.4497083717E10));
System.out.println((long) 4.4497083717E10);
プリント
2147483647 -- due to an overflow
44497083717
44497083717
関連する問題
- 1. 比較floatとdouble
- 2. 可変精度のfloat/double値
- 3. double、float変数代入に関するCのエラー
- 4. 整数型の値にdouble/floatを使用する
- 5. KotlinのFloatとDoubleの間での拡張関数の実装の共有
- 6. フロア分割の再帰関数
- 7. フォーマットfloat/double with Angular
- 8. Python "float"とPostgreSQLの浮動小数点数 "double precision"
- 9. RapidXMLノードの属性として数値(double/float)を追加します。
- 10. C関数のfloat引数が関数内で異なる値をとる
- 11. ef4 poco double/float dbtypeマッピング
- 12. floatまたはdouble精度
- 13. floatにdoubleを掛ける
- 14. 関数の値をfloatとして返すPython 3.6.1
- 15. スワップ「エンディアン」と私はfloatとdouble値の「エンディアン」を切り替えるしたい
- 16. 2つの整数パラメータを持つ関数でdoubleまたはfloatを返すことはできますか?
- 17. delete-double関数(スキーム)
- 18. double/float型の精度をPythonで
- 19. atof()doubleの代わりにfloat
- 20. floatを使用した小数点の印刷、C++のdouble
- 21. GUIテキストフィールドでdouble/float値を読み取る
- 22. JAVA/2バイトfloatをdouble値に変換する方法
- 23. 最大値は何ですか? iPhoneのdouble/floatの値ですか?
- 24. XSLT - フロアの間違った値
- 25. フロアとintキャストの違い
- 26. 天井とフロアのTreeMap java
- 27. フロアとラウンドの違い
- 28. 異なるデータ型操作double float
- 29. javaのfloatとdoubleの区別--- Javaのコード
- 30. Seq [Seq [(Double、Double)]]の場合の入力としてRDD [(Double、Double)]を期待する関数の使い方は?
と同じです。 –
@MarkoTopolnikなぜ整数値を表すことが保証されている浮動小数点数を丸めたいのですか? –
@ChristianRau 'long'が必要なので、' round'が返します。 'double'は決して"整数 "を表すことはなく、それはそれを近似するだけです。 Andrzej Doyleの答えで説明されているように、代替案は単純に「長い」形にキャストすることです。結果はまったく同じで、違いはあなたの味だけで、あなたにとってはよりクリーンなものです。 –