[解決済み] ルビー.天井と.床
2022-02-15 10:43:34
質問
私はRubyの初心者ですが、どのようにして
ceil
と
floor
は、分数や小数が使われると違う答えが返ってくるので(似たような値)、動作します。以下は、私が試したものです。
puts 8/3.ceil == 2 #=> true
puts 8/3.floor == 2 #=> true
puts 2.67.ceil == 2 #=> false
puts 2.67.floor == 2 #=> true
私の理解では
ceil
はより高い数値を返すべきであり
floor
は低い数字です。どなたかご教示いただけると幸いです。ありがとうございます。:)
どのように解決するのですか?
すべて正しく返されます。
puts 8/3.ceil == 2
#=> true, because 8/3 returns an Integer, 2
puts 8/3.floor == 2
#=> true, because 8/3 returns an Integer, 2
puts 2.67.ceil == 2
#=> false, because 2.67.ceil is 3
puts 2.67.floor == 2
#=> true, because 2.67.floor is 2
ここで、より意味を持たせるために、結果をFloatに変換することができます。
(8.to_f / 3).ceil == 2 #=> false
(8.to_f / 3).floor == 2 #=> true
2.67.ceil == 2 #=> false
2.67.floor == 2 #=> true
もう一つ注意しなければならないのは、このように
8/3.ceil
は、実際には
8 / (3.ceil)
というのは
.
よりも強く結合する。
/
. (thx
タッドマン
)
さらにもう一つ、(thx ステファン ):
また、次のようなものもあります。
fdiv
で浮動小数点数の除算を行う、つまり8.fdiv(3).ceil
. また、Rubyには素敵なRational
クラスがあります。(8/3r).ceil
.
関連
-
[解決済み】Ruby: 特定のバージョンのruby gemをインストールする方法は?
-
[解決済み] Rubyのswitch文の書き方
-
[解決済み] Rubyで配列に値が存在するかどうかを確認する方法
-
[解決済み] Rubyからシェルコマンドを呼び出す方法
-
[解決済み] Rubyでnilとemptyとblankを理解する方法
-
[解決済み] Rubyで文字列を小文字・大文字に変換する方法
-
[解決済み] Rubyのattr_accessorとは何ですか?
-
[解決済み] Ruby on Railsで現在の絶対URLを取得するにはどうすればよいですか?
-
[解決済み] Rubyのclass << selfイディオム
-
[解決済み] Rubyで「例外 => e」を救済するのはなぜ悪いスタイルなのですか?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Rubyのローカル変数が未定義である
-
[解決済み] Ruby の .reject! と .delete_if の比較
-
[解決済み] Rubyでランダムな文字列を生成する方法
-
[解決済み] Rubyで日付文字列をパースする
-
[解決済み] 文字列の文字をアルファベット順に並べるには?
-
[解決済み] Ruby の `print` から bash スクリプトを呼び出して echo するにはどうしたらいいですか?
-
[解決済み] Ruby で配列の順序を逆転させる
-
[解決済み] Ruby 2.0.0p0 IRB警告。"DLは非推奨です。Fiddleをお使いください。"
-
[解決済み] 変数が整数であるかどうかのチェック
-
[解決済み] Rubyで指定されたディレクトリが存在するかどうかを確認する方法