[解決済み] Javaでdoubleをintegerに変換する
2022-03-06 21:18:44
質問
Javaで、doubleを整数に変換したいのですが、このようなことはありませんか?
double x = 1.5;
int y = (int)x;
とすると、y=1 となります。これを実行すると
int y = (int)Math.round(x);
2を取得する可能性が高いです。しかし、整数の double 表現が 1.99999998 のように見えることがあるので、Math.round() を使って double をキャストしても、丸められた数ではなく切り捨てられた数 (つまり、このコードでは 2 でなく 1) になる可能性はありませんか?
(という意味です)。このような 任意の x の値で、y が x の丸めではなく、切り捨ての結果を表示するか?)
もしそうなら:切り捨ての危険を冒すことなく、doubleを丸めたintにする良い方法はありますか?
Math.round(x)はdoubleではなくlongを返すことがわかりました。したがって、Math.round()が3.9999998のような数字を返すことはあり得ません。したがって、int(Math.round())は何も切り捨てる必要がなく、常に動作します。
どのように解決するのですか?
<ブロッククオート
によって作成されたダブルをキャストすることは可能ですか?
Math.round()
は、やはり切り捨てられた数字になります。
いいえ。
round()
は常に正しい値に丸められ、それを
long
この場合、小数点以下は切り捨てられます。 しかし、四捨五入した後は小数が残らないようにします。
以下はそのドキュメントです。
Math.round(double)
:
long関数は、引数に最も近いlongを返します。結果は、1/2を加えて整数に丸められ、その床を取り、結果をlong型にキャストします。つまり、結果は式の値と等しくなります。
(long)Math.floor(a + 0.5d)
関連
-
[解決済み] mavenのコンパイルに失敗するのはなぜですか?
-
[解決済み] raw 型のメンバへのアンチェックの呼び出し
-
[解決済み] JavaでInputStreamを読み込んでStringに変換するにはどうすればよいですか?
-
[解決済み] JavaでNullPointerExceptionを回避する方法
-
[解決済み] JavaにおけるHashMapとHashtableの違いは何ですか?
-
[解決済み] Java Mapの各エントリを効率的に反復処理するには?
-
[解決済み] Javaでメモリーリークを発生させるにはどうしたらいいですか?
-
[解決済み] JavaでArrayListではなくLinkedListを使用するのはいつですか?
-
[解決済み] .NETでのdecimal, float, doubleの違い?
-
[解決済み] 整数の平方根が整数であるかどうかを判断する最速の方法
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Firebase クラスにシリアライズするプロパティが見つからない
-
[解決済み] java.lang.ClassCastException: java.util.Arrays$ArrayList は java.util.ArrayList にキャストできません。
-
[解決済み] java.util.concurrent.ExecutionException 例外をどのように処理しますか?
-
[解決済み] 警告: コンテキスト初期化中に例外が発生 - 更新の試みはキャンセルされました。
-
[解決済み] Eclipse- Dynamic Web Module 3.0 で新しいプロジェクトを作成するときに Java 1.6 以降が必要なエラーが発生する。
-
[解決済み] javascriptでExpression言語を使うには?
-
[解決済み] 午前0時からの時間を秒単位で取得する方法
-
[解決済み] 文字列が一意な文字であるかどうかを判定する
-
[解決済み] java.sql.SQLRecoverableException: IO エラーです。NL Exceptionが発生しました
-
[解決済み] double 型を丸め込んで int 型にする (java)