Math.ceilはなぜdoubleを返すのですか?
2023-09-27 01:38:41
質問
私が
Math.ceil(5.2)
を呼び出すと、返り値は
double
6.0
. と考えるのが自然な流れでした。
Math.ceil(double a)
を返すと思ったのです。
long
. ドキュメントから。
ceil(double a)
最も小さい(負の無限大に最も近い)値を返します。
double
の値 に等しく、引数より小さくない、数学的な 整数に等しい。
しかし、なぜ
double
ではなく
long
を使うのでしょうか?その理由を理解することで、Javaをもう少し理解できるかもしれないと思います。また、この理由によって
long
にキャストすることで問題が発生するかどうかを知るのにも役立ちます。
long b = (long)Math.ceil(a);
は、常に私が考えるべきものですか?問題となるような境界ケースがあるのではないかと心配です。
どのように解決するのですか?
の範囲は
double
よりも大きく
long
. 例えば
double x = Long.MAX_VALUE;
x = x * 1000;
x = Math.ceil(x);
最後の行は、次のような場合、どうすればいいでしょうか?
Math.ceil
が返された場合
long
?
非常に大きな値 (正または負) では、数値は非常にまばらに分布することになることに注意してください - したがって、整数より大きな次の整数は
x
よりも大きい次の整数は
x + 1
にはなりません。
関連
-
eclipse にリソースリーク:'in' が閉じない
-
[解決済み] この2回(1927年)を引き算すると、なぜおかしな結果になるのでしょうか?
-
[解決済み] なぜパスワードにはStringではなくchar[]が好まれるのですか?
-
[解決済み] serialVersionUIDとは何ですか、またなぜそれを使用する必要がありますか?
-
[解決済み] B "の印刷が "#"の印刷より劇的に遅いのはなぜですか?
-
[解決済み] .NETでのdecimal, float, doubleの違い?
-
[解決済み] ランダムな文字列を使用するこのコードは、なぜ "hello world" と表示されるのですか?
-
[解決済み] なぜJavaにはtransientフィールドがあるのですか?
-
[解決済み】Javaではfinallyブロックは必ず実行されるのですか?
-
[解決済み】なぜJavaの+=, -=, *=, /=複合代入演算子はキャスティングを必要としないのですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Collections.sortがdoubleでソートできない問題を完璧に解決する。
-
Solve モジュールのビルドに失敗しました。Error: ENOENT: no such file or directory エラー
-
ブートレイヤーの初期化中にエラーが発生しました java.lang.module.FindException: モジュールが見つかりません
-
java -jarコマンドでパッケージを実行すると、無効または破損したjarfile xxxx.jarが表示される。
-
XXX型を囲むインスタンスがJavaでアクセスできない
-
JNIエンカウンターエラー:構造体またはユニオンではない何かでメンバー 'FindClass' のリクエスト
-
Server Tomcat v9.0 Server at localhost の起動に失敗しました。
-
Javaがエラーで実行される、選択が起動できない、最近起動したものがない
-
Spring Bootは、Tomcatの組み込みのmaxPostSizeの値を設定します。
-
CAS 5.1.8でhttpをサポートし、認証されていない認可サービスエラーのプロンプトが表示される問題を解決した。