俺「0.1+0.2=0.3だろ」Javasprict「違います」

    1風吹けば名無し@\(^o^)/ :2016/09/27(火) 03:08:33.40ID:CCwlASUF0.net
    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じゃないからしゃーない


    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
    プログラムやぞ?



    13風吹けば名無し@\(^o^)/ :2016/09/27(火) 03:11:20.65ID:4puwb8GM0.net
    >>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ではないから



    16風吹けば名無し@\(^o^)/ :2016/09/27(火) 03:12:29.77ID:Jr7gFHjO0.net
    >>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って何ンゴ?


    14風吹けば名無し@\(^o^)/ :2016/09/27(火) 03:11:21.77ID:UDKA8MJF0.net
    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
    いや分かってるやろ



    19風吹けば名無し@\(^o^)/ :2016/09/27(火) 03:13:19.28ID:xIaCm6Vu0.net
    javaとjavascriptは別人


    23風吹けば名無し@\(^o^)/ :2016/09/27(火) 03:13:59.47ID:c5eXFsd00.net
    >>19
    ???「なんか流行ってるから名前につけたろ!」



    20風吹けば名無し@\(^o^)/ :2016/09/27(火) 03:13:45.02ID:abJYhnPz0.net
    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進数の世界に生きるコンピューターでは正確に扱う事ができません。なので近似値で扱うのですが、実際の数値とはちょっとだけずれているので、計算を行うと変な結果になってしまったりするわけなんやな



    24風吹けば名無し@\(^o^)/ :2016/09/27(火) 03:14:18.05ID:IDlvf2i2a.net
    >>21
    そのまま引用ニキ



    26風吹けば名無し@\(^o^)/ :2016/09/27(火) 03:15:29.19ID:YMpwzU77d.net
    >>21



    25風吹けば名無し@\(^o^)/ :2016/09/27(火) 03:14:24.08ID:XGk7vlL60.net
    2進数最大の弱点


    29風吹けば名無し@\(^o^)/ :2016/09/27(火) 03:17:09.30ID:Hcl4umo/a.net
    はえ~COBOLって10進数なんや
    昔見た教科書にはCOBOLは数字に強いから銀行に使われるくらいの説明しか書いてなかったけどその説明も欲しかったなあ



    30風吹けば名無し@\(^o^)/ :2016/09/27(火) 03:17:28.90ID:TyPQIDIr0.net
    全然知らんけどコンピュータに10進法使わせたら問題解決するんちゃうの?


    32風吹けば名無し@\(^o^)/ :2016/09/27(火) 03:18:57.55ID:KocNo+8R0.net
    >>30
    そこはプログラマーの腕の見せどころ



    31風吹けば名無し@\(^o^)/ :2016/09/27(火) 03:17:55.23ID:abJYhnPz0.net
    どうしても計算したいなら整数にしてから少数にするといお




    ★おすすめピックアップ
    ハローワークが全く役に立たなくてワロタwwwwww

    【悲報】アイドルがファン1人にCD2000枚買わせて温泉旅行(非混浴)特典を付けてクズすぎる件

    【朗報】イチローが、アホみたいにヒットを打ちまくるニュースwwwwwwwwwwwww

    西日本人「雑炊するから残った汁鍋に戻して」 東日本人「え?」 西日本特有の風習が汚すぎると話題に







    
                       
    Error回避

    オススメ記事

    こんな記事はいかかですか

    コメント

    名無しさん 2016年09月28日 18:33 ID:U45MdB.60 ▼このコメントに返信

    2進法かな?
    要は1ギガのメモリが、実際は1024メガで認識されてるのと同じ理由だろ?多分

    名無しさん 2016年09月28日 18:59 ID:nCyU8t0H0 ▼このコメントに返信

    >>1
    分からないなら黙ってた方がいいと思うのに

    無名の信者 2016年09月28日 19:13 ID:0OM69whL0 ▼このコメントに返信

    ソニーの計算間違いもこれのせいか

    名無しさん 2016年09月28日 20:11 ID:x3Dy5l1A0 ▼このコメントに返信

    昔FP-1100とかいうパソコンがあったけど売れなかったみたいだよ。

    名無しさん 2016年09月28日 21:06 ID:5nn9Jpfs0 ▼このコメントに返信

    N60-BASICのマニュアル(?)で0.1を10回足すと1にはならないってあったな

    名無しさん 2016年09月28日 21:32 ID:bhk2cjdl0 ▼このコメントに返信

    10進数では1÷3が表現できないのといっしょ
    極端な話、素数を全て掛け合わせた数字の進数ならすべての少数を表現できる

    無名の信者 2016年09月28日 21:43 ID:AkEJppzc0 ▼このコメントに返信

    ※1
    アホすぎワロタ

    名無しさん 2016年09月28日 21:47 ID:.xz.jQqw0 ▼このコメントに返信

    今やっている金融系のJavaプログラムで最初にシステムを構築した奴が浮動小数点で作ったおかげで5年くらい酷い目にあってる
    根本から作り直さないとどうしようもないんだが許可が降りない

    無名の信者 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進数での小数点以下の表し方を知って納得した。

    

    いたしん週間記事ランキング

    人気記事
    最新記事
    カテゴリ別アーカイブ
    月別アーカイブ
    ブログパーツ

    アクセスランキング ブログパーツ ワキガ治療 家庭教師 熊本 アクセスランキング