[#47173] 小数点以下を切り捨てる方法について — "T.Soejima" <clev@...2.so-net.ne.jp>

お世話になっております。そえじま@勉強中です。

16 messages 2010/06/23

[ruby-list:47190] Re: 小数点以下を切り捨てる方法について

From: take_tk <ggb03124@...>
Date: 2010-06-24 10:08:48 UTC
List: ruby-list #47190
たけ(tk)です

[ruby-list:47186] Re: 小数点以下を切り捨てる方法に
ついて にて
"T.Soejima" <clev@ck2.so-net.ne.jp> さん曰く:


> いただいた方法のどれを使っても、1.2344999999999999 を与えると
> どうしても四捨五入してしまうようです。

Float だからですね。1.2344999999999999 と 1.2345 
との区別がつかないようです。

irb(main):015:0> 1.2344999999999999
=> 1.2345
irb(main):018:0> 1.2344999999999999 - 1.2345
=> 0.0
irb(main):019:0> 1.2344999999999999 == 1.2345
=> true
irb(main):020:0>

もっと正確な浮動小数点を扱いたいなら BigDecimal で
しょう。

irb(main):016:0> require "bigdecimal"
=> true
irb(main):017:0> BigDecimal::new("1.2344999999999999").floor(5).to_f
=> 1.23449

Take_tk = KUMAGAI Hidetake
たけ(tk)=熊谷秀武


In This Thread