[#47133] [ANN] ulmul-0.4.1 is released with ulmul2html5 and ulmul2xhtml — Takeshi NISHIMATSU <t_nissie@...>
西松と申します。
4 messages
2010/06/06
[#47158] [ANN] RubyKaigi 2010: PGP Keysigning Party — Urabe Shyouhei <shyouhei@...>
みなさんこんにちわ。
5 messages
2010/06/15
[#47173] 小数点以下を切り捨てる方法について — "T.Soejima" <clev@...2.so-net.ne.jp>
お世話になっております。そえじま@勉強中です。
16 messages
2010/06/23
[#47174] Re: 小数点以下を切り捨てる方法について
— "NARUSE, Yui" <naruse@...>
2010/06/23
成瀬です。
[#47180] Re: 小数点以下を切り捨てる方法について
— "T.Soejima" <clev@...2.so-net.ne.jp>
2010/06/24
そえじま@勉強中です。
[#47182] Re: 小数点以下を切り捨てる方法について
— "KISHIMOTO, Makoto" <ksmakoto@...4u.or.jp>
2010/06/24
kなんとか、じゃない、きしもとです
[#47199] [ANN] RubyKaigi2010のライトニングトークスの応募フォームをオープンしました — SHIMADA Koji <snoozer.05@...>
日本Ruby会議2010実行委員のしまだです。
5 messages
2010/06/30
[ruby-list:47181] Re: 小数点以下を切り捨てる方法について
From:
take_tk <ggb03124@...>
Date:
2010-06-24 02:03:21 UTC
List:
ruby-list #47181
たけ(tk)です
[ruby-list:47173] 小数点以下を切り捨てる方法につい
て にて
"T.Soejima" <clev@ck2.so-net.ne.jp> さん曰く:
> Rubyで 1.2345678 のような桁数の小数を、例えば 1.2345 と表示させて
> くれるようなメソッドはありますでしょうか?
Ruby の Float#floor は Fixnum を返すという仕様なの
で、桁位置を指定できないみたいですね。
# http://www.ruby-lang.org/ja/man/html/Numeric.html
# http://doc.okkez.net/static/191/class/Float.html
(1)桁位置を指定した場合には Float を返す。
(2)桁位置を指定しなければ Fixnum を返す。
ように拡張してしまいましょう。
===
# http://www.ruby-lang.org/ja/man/html/Numeric.html
# http://doc.okkez.net/static/191/class/Float.html
module Numeric::Keta
def self.included(klass)
klass.class_eval do
alias :floor_without_keta :floor
alias :floor :floor_with_keta
end
end
def floor_with_keta(d=nil)
return floor_without_keta unless d
x = 10**d
(self * x).floor_without_keta.quo(x) # / x では Integer#/
end
end
p 1.234567890.floor #=> 1
p 1.234567890.floor.class #=> Fixnum
p 1.234567890.floor(4) rescue p $! #=> #<ArgumentError: wrong number of arguments (1 for 0)>
::Float.send :include, Numeric::Keta
p 1.234567890.floor(4) #=> 1.2345
p 1.234567890.floor(4).class #=> Float
p 1.234567890.floor(0) #=> 1.0
p 1.234567890.floor(0).class #=> Float
p 1.234567890.floor #=> 1
p 1.234567890.floor.class #=> Fixnum
Take_tk = KUMAGAI Hidetake
たけ(tk)=熊谷秀武