俺「0.1+0.2=0.3だろ」Javasprict「違います」
- 2016.9.28 18:27
- IT・ネット
- コメント( 11 )
- Tweet
1:風吹けば名無し@\(^o^)/
:2016/09/27(火) 03:08:33.40ID:CCwlASUF0.net
Java「0.1+0.2=0.30000000000000004です」
キチガイかこいつ
Java「0.1+0.2=0.30000000000000004です」
キチガイかこいつ
2:風吹けば名無し@\(^o^)/
:2016/09/27(火) 03:08:57.10ID:m3DnQU5ua.net
こま?
こま?
3:風吹けば名無し@\(^o^)/
:2016/09/27(火) 03:09:02.22ID:isek8peH0.net
0.1じゃないからしゃーない
0.1じゃないからしゃーない
4:風吹けば名無し@\(^o^)/
:2016/09/27(火) 03:09:03.73ID:DXYeo7Nl0.net
はえープログラムの人ってちょっと変
はえープログラムの人ってちょっと変
5:風吹けば名無し@\(^o^)/
:2016/09/27(火) 03:09:17.20ID:H8Io4bJk0.net
しゃーない
しゃーない
6:風吹けば名無し@\(^o^)/
:2016/09/27(火) 03:09:36.38ID:qwBkuMha0.net
ほーん
コンピュータの人間超えはなさそうやね
ほーん
コンピュータの人間超えはなさそうやね
10:風吹けば名無し@\(^o^)/
:2016/09/27(火) 03:10:44.69ID:KocNo+8R0.net
>>6
プログラムやぞ?
>>6
プログラムやぞ?
13:風吹けば名無し@\(^o^)/
:2016/09/27(火) 03:11:20.65ID:4puwb8GM0.net
>>6
はえーなんでコンピュータの話になるんやろか
>>6
はえーなんでコンピュータの話になるんやろか
7:風吹けば名無し@\(^o^)/
:2016/09/27(火) 03:10:04.26ID:Hcl4umo/a.net
どうしてそうなるんや
どうしてそうなるんや
12:風吹けば名無し@\(^o^)/
:2016/09/27(火) 03:10:58.50ID:isek8peH0.net
>>7
0.1とかも0.1に近い近似であって0.1ではないから
>>7
0.1とかも0.1に近い近似であって0.1ではないから
16:風吹けば名無し@\(^o^)/
:2016/09/27(火) 03:12:29.77ID:Jr7gFHjO0.net
>>12
丸が四角の塊みたいなもんか
>>12
丸が四角の塊みたいなもんか
8:風吹けば名無し@\(^o^)/
:2016/09/27(火) 03:10:08.05ID:PH0Hww9ka.net
浮動小数点?
浮動小数点?
9:風吹けば名無し@\(^o^)/
:2016/09/27(火) 03:10:32.95ID:rGOhxiQc0.net
スクリプトやで
スクリプトやで
11:風吹けば名無し@\(^o^)/
:2016/09/27(火) 03:10:52.80ID:JcaJ7rVm0.net
すまんがJavaappletって何ンゴ?
すまんがJavaappletって何ンゴ?
14:風吹けば名無し@\(^o^)/
:2016/09/27(火) 03:11:21.77ID:UDKA8MJF0.net
javascript:alert(0.1+0.2)
↑をコピーしてIEとかのアドレスバーに張り付けてエンター
javascript:alert(0.1+0.2)
↑をコピーしてIEとかのアドレスバーに張り付けてエンター
15:風吹けば名無し@\(^o^)/
:2016/09/27(火) 03:11:44.08ID:1p+JYOSk0.net
切り捨てしてやらなあかんてこと?
切り捨てしてやらなあかんてこと?
17:風吹けば名無し@\(^o^)/
:2016/09/27(火) 03:12:40.60ID:wZT9B7N90.net
浮動小数点演算について勉強するといいよ
浮動小数点演算について勉強するといいよ
18:風吹けば名無し@\(^o^)/
:2016/09/27(火) 03:13:04.65ID:895hVGJl0.net
>>17
いや分かってるやろ
>>17
いや分かってるやろ
19:風吹けば名無し@\(^o^)/
:2016/09/27(火) 03:13:19.28ID:xIaCm6Vu0.net
javaとjavascriptは別人
javaとjavascriptは別人
23:風吹けば名無し@\(^o^)/
:2016/09/27(火) 03:13:59.47ID:c5eXFsd00.net
>>19
???「なんか流行ってるから名前につけたろ!」
>>19
???「なんか流行ってるから名前につけたろ!」
20:風吹けば名無し@\(^o^)/
:2016/09/27(火) 03:13:45.02ID:abJYhnPz0.net
2進数やとこうなるCOBOLは10進数やから銀行で使われる
2進数やとこうなるCOBOLは10進数やから銀行で使われる
21:風吹けば名無し@\(^o^)/
:2016/09/27(火) 03:13:48.26ID:Hcl4umo/a.net
>>12
はえ~なるほど
つまり現代のコンピューターの性質で、数値を2進数、つまり2の階乗の和で表現しようとするためです。
例えば0.5は簡単ですね。2-1です。また0.25は2-2ですから、0.75は2-1+2-2という事になります。
ちなみにJavaScriptで階乗を扱う場合はMath.pow()です。
1
console.log(Math.pow(2, -1)); // => 0.5
2
console.log(Math.pow(2, -2)); // => 0.25
3
console.log(Math.pow(2, -1) + Math.pow(2, -2)); // => 0.75
それでは0.1はどう表せば良いでしょうか?
1
console.log(0.1.toString(2)); // => "0.0001100110011001100110011001100110011001100110011001101"
おわかり頂けるでしょうか、これ、循環小数になります。10進数でいうところの1/3 = 0.33333333…みたいなやつです。
ですので、0.1は2進数の世界に生きるコンピューターでは正確に扱う事ができません。なので近似値で扱うのですが、実際の数値とはちょっとだけずれているので、計算を行うと変な結果になってしまったりするわけなんやな
>>12
はえ~なるほど
つまり現代のコンピューターの性質で、数値を2進数、つまり2の階乗の和で表現しようとするためです。
例えば0.5は簡単ですね。2-1です。また0.25は2-2ですから、0.75は2-1+2-2という事になります。
ちなみにJavaScriptで階乗を扱う場合はMath.pow()です。
1
console.log(Math.pow(2, -1)); // => 0.5
2
console.log(Math.pow(2, -2)); // => 0.25
3
console.log(Math.pow(2, -1) + Math.pow(2, -2)); // => 0.75
それでは0.1はどう表せば良いでしょうか?
1
console.log(0.1.toString(2)); // => "0.0001100110011001100110011001100110011001100110011001101"
おわかり頂けるでしょうか、これ、循環小数になります。10進数でいうところの1/3 = 0.33333333…みたいなやつです。
ですので、0.1は2進数の世界に生きるコンピューターでは正確に扱う事ができません。なので近似値で扱うのですが、実際の数値とはちょっとだけずれているので、計算を行うと変な結果になってしまったりするわけなんやな
24:風吹けば名無し@\(^o^)/
:2016/09/27(火) 03:14:18.05ID:IDlvf2i2a.net
>>21
そのまま引用ニキ
>>21
そのまま引用ニキ
26:風吹けば名無し@\(^o^)/
:2016/09/27(火) 03:15:29.19ID:YMpwzU77d.net
>>21
草
>>21
草
25:風吹けば名無し@\(^o^)/
:2016/09/27(火) 03:14:24.08ID:XGk7vlL60.net
2進数最大の弱点
2進数最大の弱点
29:風吹けば名無し@\(^o^)/
:2016/09/27(火) 03:17:09.30ID:Hcl4umo/a.net
はえ~COBOLって10進数なんや
昔見た教科書にはCOBOLは数字に強いから銀行に使われるくらいの説明しか書いてなかったけどその説明も欲しかったなあ
はえ~COBOLって10進数なんや
昔見た教科書にはCOBOLは数字に強いから銀行に使われるくらいの説明しか書いてなかったけどその説明も欲しかったなあ
30:風吹けば名無し@\(^o^)/
:2016/09/27(火) 03:17:28.90ID:TyPQIDIr0.net
全然知らんけどコンピュータに10進法使わせたら問題解決するんちゃうの?
全然知らんけどコンピュータに10進法使わせたら問題解決するんちゃうの?
32:風吹けば名無し@\(^o^)/
:2016/09/27(火) 03:18:57.55ID:KocNo+8R0.net
>>30
そこはプログラマーの腕の見せどころ
>>30
そこはプログラマーの腕の見せどころ
31:風吹けば名無し@\(^o^)/
:2016/09/27(火) 03:17:55.23ID:abJYhnPz0.net
どうしても計算したいなら整数にしてから少数にするといお
どうしても計算したいなら整数にしてから少数にするといお
★おすすめピックアップ
ハローワークが全く役に立たなくてワロタwwwwww【悲報】アイドルがファン1人にCD2000枚買わせて温泉旅行(非混浴)特典を付けてクズすぎる件
【朗報】イチローが、アホみたいにヒットを打ちまくるニュースwwwwwwwwwwwww
西日本人「雑炊するから残った汁鍋に戻して」 東日本人「え?」 西日本特有の風習が汚すぎると話題に
Error回避
- 2016.9.28 18:27
- IT・ネット
- コメント( 11 )
- Tweet
1 名無しさん 2016年09月28日 18:33 ID:U45MdB.60 ▼このコメントに返信
2進法かな?
要は1ギガのメモリが、実際は1024メガで認識されてるのと同じ理由だろ?多分
2 名無しさん 2016年09月28日 18:59 ID:nCyU8t0H0 ▼このコメントに返信
>>1
分からないなら黙ってた方がいいと思うのに
3 無名の信者 2016年09月28日 19:13 ID:0OM69whL0 ▼このコメントに返信
ソニーの計算間違いもこれのせいか
4 名無しさん 2016年09月28日 20:11 ID:x3Dy5l1A0 ▼このコメントに返信
昔FP-1100とかいうパソコンがあったけど売れなかったみたいだよ。
5 名無しさん 2016年09月28日 21:06 ID:5nn9Jpfs0 ▼このコメントに返信
N60-BASICのマニュアル(?)で0.1を10回足すと1にはならないってあったな
6 名無しさん 2016年09月28日 21:32 ID:bhk2cjdl0 ▼このコメントに返信
10進数では1÷3が表現できないのといっしょ
極端な話、素数を全て掛け合わせた数字の進数ならすべての少数を表現できる
7 無名の信者 2016年09月28日 21:43 ID:AkEJppzc0 ▼このコメントに返信
※1
アホすぎワロタ
8 名無しさん 2016年09月28日 21:47 ID:.xz.jQqw0 ▼このコメントに返信
今やっている金融系のJavaプログラムで最初にシステムを構築した奴が浮動小数点で作ったおかげで5年くらい酷い目にあってる
根本から作り直さないとどうしようもないんだが許可が降りない
9 無名の信者 2016年09月28日 21:52 ID:.QwCUAlL0 ▼このコメントに返信
丸め処理やな
10 無名の信者 2016年09月28日 22:33 ID:.Pl2AIKj0 ▼このコメントに返信
ウチのCADソフトも1万倍したり0.1足したりとか
謎の記述が幾つも有ったなぁ
コメント書けやコラ!
11 名無しさん 2016年09月30日 02:31 ID:4XJtpyQg0 ▼このコメントに返信
BCDって最初はなんのためにあるのかと思ったが、2進数での小数点以下の表し方を知って納得した。