[#36686] 1.1 < 61.1 - 60.0 — Shin-ichiro HARA <sinara@...>

原です。

19 messages 2002/12/06

[#36770] www.ruby-lang.orgリニューアル準備のお知らせ — TADA Tadashi <sho@...>

ruby-lang.orgのwebmasterチームでは、タイムリーな情報提供と使いやすい

11 messages 2002/12/16

[ruby-list:36708] Re: 1.1 < 61.1 - 60.0

From: Take_tk <ggb03124@...>
Date: 2002-12-06 14:41:33 UTC
List: ruby-list #36708
たけ(tk)です。

[ruby-list:36704] Re: 1.1 < 61.1 - 60.0 にて 
Shin-ichiro HARA <sinara@blade.nagaokaut.ac.jp> さん 曰く:

: 結局これは、require "Float_fixed_cmp" とすると、a == b となる
: 機会が増え、 a < b あるいは a > b となる機会が減る、という事に
: なるわけですね。それが望ましいのかどうか。

 望ましいかどうかは使う目的次第ですね。

「入学試験みたいな、測定値自体はアバウトなわりには判定基準はやたらシビア
な場合」というのは、「人間が行う端数処理と同様の処理」で「手作業との照合
で "誤差" が出」ないようにするという意味でのシビアさのことだと思います。

最初の「成績処理のプログラム中に 1.1 < 61.1 - 60.0 が真になってしまって
困っている」という苦情は「1.1 == 61.1 - 60.0」であるべきだという趣旨でしょ
うから、固定小数点処理で行なってほしいという要望に読み替えても構わないと
思います。

----
p a = 1.1          #=> 1.1
p b = 61.1 - 60.0  #=> 1.1
p c = 2.8 - 1.7    #=> 1.1

p a <=> b          #=> -1
p b <=> c          #=> 1
p c <=> a          #=> -1

p 61.1 - 60.0 <=> 2.8 - 1.7    #=> -1

require "Float_fixed_cmp"

p a <=> b          #=> 0
p b <=> c          #=> 0
p c <=> a          #=> 0

p 61.1 - 60.0 <=> 2.8 - 1.7    #=> 0
----

take_tk = kumagai hidetake

In This Thread