[#36899] シグナルのtrapについて — sakazuki <QZS01353@...>
こんにちは。sakazukiです。
7 messages
2003/01/07
[#36912] Numeric#bankers_round — Take_tk <ggb03124@...>
たけ(tk)です
5 messages
2003/01/08
[#36924] vruby030101が何か変 — Mitsuo Igarashi <mitsu5@...>
VisualuRuby を使わしていただこうと、インストールしました。
8 messages
2003/01/10
[#36926] Re: vruby030101が何か変
— NISHIKAWA <nyasu@...3web.ne.jp>
2003/01/11
こんにちは。nyasu@3web です。
[#36940] include した定数に対する defined? — ABE Shigeru <shiger-a@...>
阿部です。立て続けで、すみません。
6 messages
2003/01/16
[#36945] Arrayの判定 — Nonta <nonta@...>
はじめまして。野田と申します。
7 messages
2003/01/17
[#36955] JIS符号化ライブラリ — Satoshi Osabe <s-osabe@...>
長部と申します。
6 messages
2003/01/18
[#36957] Unicode 対応の nkf は? — Take_tk <ggb03124@...>
たけ(tk)です
6 messages
2003/01/18
[#36971] ERB2 bug? — MoonWolf <moonwolf@...>
MoonWolfです。
7 messages
2003/01/19
[#37001] CGIで画像のサイズ変更をしたい。 — FUJIOKA Takeyuki <fuji@...>
藤岡と申します。
6 messages
2003/01/27
[#37005] ruby-1.8.0 mingw build 失敗 — Mitsuo Igarashi <mitsu5@...>
ruby-1.8.0 を gcc -mno-cygwin でビルドしようとしましたが
7 messages
2003/01/27
[#37008] win2000server+rbcw164jでCGIエラー — Misawa Shinobu <misawa@...>
はじめまして。ミサワといいます。
7 messages
2003/01/27
[#37021] [RAA] RAA/2.3 — "U.Nakamura" <usa@...>
みなさんこんにちは。
20 messages
2003/01/30
[#37026] Re: [RAA] RAA/2.3
— MoonWolf <moonwolf@...>
2003/01/30
MoonWolfです。
[ruby-list:36915] Numeric#round_to
From:
Take_tk <ggb03124@...>
Date:
2003-01-08 07:19:25 UTC
List:
ruby-list #36915
たけ(tk)です
桁位置を指定して四捨五入するメソッドはないのでしょうか?
http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-math/301
7 Jun 2000 From: Wakou Aoyama
でも話題になっていたようですが……
----
#! ruby -Ks
#-- Numeric_round_to.rb
#-- Numeric_ex.rb
#-- Float_fixed_cmp.rb
class Numeric
require "Numeric_bankers_round"
def bankers_round_to(column=-4)
divider = 10.0**column
return (self/divider).bankers_round*divider
end
alias bankers_round2 bankers_round_to
def round_to(column=-4)
divider = 10.0**column
return (self/divider).round*divider
end
alias round2 round_to
def ceil_to(column=-4)
divider = 10.0**column
return (self/divider).ceil*divider
end
alias ceil2 ceil_to
def floor_to(column=-4)
divider = 10.0**column
return (self/divider).floor*divider
end
alias floor2 floor_to
end
if __FILE__ == $0
require "complex"
require "Complex_round"
p 1234567.ceil_to(3) ##1235000.0
p 1234567.floor_to(3) ##1234000.0
p 1234567.round_to(3) ##1235000.0
p 1234500.round_to(3) ##1235000.0
p 1235500.round_to(3) ##1236000.0
p 1236500.round_to(3) ##1237000.0
p 1234567.bankers_round_to(3) ##1235000.0
p 1234500.bankers_round_to(3) ##1234000.0
p 1235500.bankers_round_to(3) ##1236000.0
p 1236500.bankers_round_to(3) ##1236000.0
p 1.234.round_to(-2) ##1.23
p 1.600000024.round_to(-4) #=> 1.6
p 1.799999952.round_to(-4) #=> 1.8
p 2.200000048.round_to(-4) #=> 2.2
p 2.299999952.round_to(-4) #=> 2.3
p 49.round_to(1) #=> 50.0
p 50.round_to(1) #=> 50.0
p 49.round_to(2) #=> 0.0
p 50.round_to(2) #=> 100.0
p Complex(2.200000048,1.799999952).round_to(-4) #=> Complex(2.2, 1.8)
p Complex(2.200000048,1.799999952).floor_to(-4) #=> Complex(2.2, 1.7999)
p Complex(2.200000048,1.799999952).ceil_to(-4) #=> Complex(2.2001, 1.8)
end
----
=begin
【某言語のヘルプより】
RoundTo 関数は,「Banker's Rounding」を使って浮動小数点値を指定された桁
数(10 の累乗)に丸めます。
説明:
RoundTo 関数を呼び出すと,AValue を指定された 10 の累乗に丸めることができます。
RoundTo は,「Banker's Rounding」を使って,適切な有効桁数を持つ 2 つの値
のちょうど中間にある値の丸め方法を判断します。この方法では,AValue がど
ちらの値にも近くない場合に偶数に丸められます。
SimpleRoundTo は,非対称の計算丸めを使って,適切な有効桁数を持つ 2 つの
値のちょうど中間にある値の丸め方法を判断します。この方法では,常に大きい
方の値に丸められます。
例:
RoundTo(1234567, 3) 1234000
RoundTo(1.234, -2) 1.23
=end
Take_tk = KUMAGAI Hidetake
たけ(tk)=熊谷秀武