Float(浮動小数点数)にはまる。Float(浮動小数点数)にはまる。2016ルビーオンレールズできなくて許されるのは小学生までだよねー。Rubyを習得しようと勉強中です。無駄に前振りが長かったですが、今回はFloat型の誤差とかにハマりましたのメモです。割り算なのですが、Rubyは整数と整数で割り算をすると整数で返ってくるのに戸惑いました。「3÷2は?」って言われたら、答えは「1.5」を思い浮かべると思います。個人的に慣れてしまっていたjavascriptで出力してみると1.5が返っていました。Integer型どうしの計算はInteger型で返ってきます。「1.5」を得るには片方をFloat型に変換してあげでばOKです。1.5mathnというライブラリを使用すると、計算式.to_fの形で書けるようです。使いドコロがぱっと思いつかないです。Integer型どうしで負の数の割り算をすると割り切れない計算の場合、結果がマイナス方向に1大きくなる問題。先の例と同じ感じで「-3÷2」のパターン。javascriptでは「-1.5」になりました。-1.5RubyだとInteger型どうしなので、Integer型になるから「-1」かな。-2「-2」になるので、小数点以下があるとInteger型どうしの場合、マイナス方向に切り上られる仕様のようです。この仕様を覚えていないと戸惑いそうです。243.00000000000003Floatクラスのオブジェクトは内部的に2進数にて表現される。2進数で表現した場合に無限小数となる数の演算は全て、浮動小数点誤差が発生する可能性がある。「2進数で表現した場合に有限小数となる」とは、既約数で表現した場合の分母に2以外の素因数がない事である。分母を素因数分解すると21なので浮動小数点誤差は発生しない。分母を素因数分解すると22なので浮動小数点誤差は発生しない。243.00000000000003Chrome(48.0.2564.116)のコンソールで確認したらjavascriptでもなってましたw不用意に繰り上げみたいなことしてたら予期しない予期しない数字とかが出てしまうので、浮動小数点数は誤差が発生するものとして気をつけましょうということですね。まとめたんにゆるふわ言語javascriptから覚えてしまったのが良くなかったのか、元々数Aで挫折してる事もあって数学的な事はサッパリダメなので結構戸惑うことが多いです。後、この勉強している「初めてのRuby」って本なのですが何となくRubyやルビーオンレールズで何かが作れている状態で、もっとキチンとRubyの言語仕様を知りたい!って人向けな気がしてきています。見る少し古い本ですが、サクッと達成感と成功経験が得られそうだったのでモチベーションを保つために買いました。Float(浮動小数点数)にはまる。ループで配列のindexを取得したい。ファイルの作成日と変更日を変更する。чайка!無職のデザイナーが描いています。コンポーネント外のDOMに子コンポーネントを追加したい。(2)参加グループプログラミングデザインPHPPythonJavaScriptRubyWordPressCLOSEはてなブログをはじめよう!kikiki-kikiさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。