実数 2.0 に対して int(2.0) ==2 だが、
int(1.9), int (1.99), int(1.999), int(1.9999) , ・・・・
は 何ケタまで続けば 整数 2 になるか?
というプログラミングの問題なのですが、答えは16桁であってますか?
また、やり方が違っていればご指摘願います。
double d = 1.9999999999999999;
String s = "";
if(2==d){
s = ": if(2==d)";
}else{
s = ": if(2!=d)";
}
System.out.println(d+s);
No.1ベストアンサー
- 回答日時:
INT変換は基本的に切り捨てです。
基本ルールとしては何桁続いても1.9999...は1です。
ただ、a=1/3;b=a*3;とした時にbを扱わなければならない為、有効桁の最後まで9が続く様な数字の場合切り上げるという処理が働きます。
この仮数部の有効桁数は52bitで10進数では15桁~17桁です。ですから指数部が指し示す少数域を9で埋めてあげれば切り上げ処理が働くことになります。
仮数部の有効桁数が15~17桁ですので数百万と言った大きな数字を入れると小数点以下の桁数は減ってゆきます。一方0.000009999...の様な小さな値を入れれば小数点以下の桁数は増えてゆきます。
ですから答えは「不定」です。
そもそも、doubleがどの値に近いかを判定するための仕様ではありません。
仕様の目的外使用をせずにご自分で何をもって切り捨て切り上げとするか(例えば四捨五入とか)を決定し、それに基づいた実装にすべきです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
doubleとintの違い
-
java のfor文について質問です。
-
0dの意味を教えてください
-
べき乗
-
javaプログラミングの質問です。
-
JAVAのプログラムで、2乗計算...
-
実数からの小数部の取得
-
double型変数値の整数部分のみ...
-
doubleで入力するには?
-
ループ処理の際、最後だけ","を...
-
JSPやサーブレットでSystem.out...
-
System.err. printlnとSystem.o...
-
C言語のポインターに関する警告
-
ダブルクォーテーションのrepla...
-
hiddenの値が期待した値で取得...
-
SwingでJtableのヘッダ行が表示...
-
javaで質問です。 文字列2023/2...
-
ORA-01858: 数値を指定する箇所...
-
strcmp関数などでの複数の文字...
-
逆コンパイルの見方について(...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
実数からの小数部の取得
-
0dの意味を教えてください
-
べき乗
-
Javaで何パーセント%かを表示...
-
JAVAのプログラムで、2乗計算...
-
分を表す数値(int型)を、小数...
-
double型変数値の整数部分のみ...
-
javaの課題。。
-
javaで1.8x10の308乗÷...
-
少数50桁以上を表示するには
-
double型の足し算について
-
doubleについて
-
Javaコンパイルエラー
-
手入力された値を0.5区切りに変...
-
数値積分について
-
最大値と最小値の求め方
-
最大値を求めるプログラム
-
Javaのeval関数処理
-
javaでC++のdefine文に相当する...
-
Java math.powメソッド
おすすめ情報