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

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

16 messages 2010/06/23

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

From: "KISHIMOTO, Makoto" <ksmakoto@...4u.or.jp>
Date: 2010-06-24 10:05:40 UTC
List: ruby-list #47188
浮動小数点数とはそんなものではあるのですが、
# たとえばコンピュータの内部では2進表現なのでソースコードの10進表現と
# 厳密に一致している保証はない。

> 今のところ正規表現が苦手なので、個人的には山崎(ゆ)さんのような
> 方法が自分には合ってるのかなぁと思っているのですが、皆さんにご教示
> いただいた方法のどれを使っても、1.2344999999999999 を与えると
> どうしても四捨五入してしまうようです。

p ('%.20g' % 1.2344999999999999).sub(/(\....).*/){$1}

のように、何も考えずに桁数を増やしてみたところとりあえず "1.234" が
出力されるようにはなりました。

# 本来20桁の精度はないので、これでうまくいかない場合には、
# 桁数をこれ以上増やしてもダメです。

In This Thread