ライブラリ
- ビルトイン (33)
- bigdecimal (549)
-
bigdecimal
/ ludcmp (11) -
bigdecimal
/ newton (11) -
bigdecimal
/ util (11) - matrix (11)
クラス
- BigDecimal (505)
- Integer (44)
- Matrix (11)
キーワード
- ** (18)
-
1
. 6 . 8から1 . 8 . 0への変更点(まとめ) (11) - BASE (11)
- BigDecimal (22)
-
EXCEPTION
_ ALL (11) -
EXCEPTION
_ INFINITY (11) -
EXCEPTION
_ NaN (11) -
EXCEPTION
_ OVERFLOW (11) -
EXCEPTION
_ UNDERFLOW (11) -
EXCEPTION
_ ZERODIVIDE (11) -
NEWS for Ruby 2
. 5 . 0 (7) -
NEWS for Ruby 2
. 6 . 0 (6) -
NEWS for Ruby 3
. 0 . 0 (4) -
NEWS for Ruby 3
. 1 . 0 (3) -
ROUND
_ CEILING (11) -
ROUND
_ DOWN (11) -
ROUND
_ FLOOR (11) -
ROUND
_ HALF _ DOWN (11) -
ROUND
_ HALF _ EVEN (11) -
ROUND
_ HALF _ UP (11) -
ROUND
_ MODE (11) -
ROUND
_ UP (11) - Ruby用語集 (11)
-
SIGN
_ NEGATIVE _ FINITE (11) -
SIGN
_ NEGATIVE _ INFINITE (11) -
SIGN
_ NEGATIVE _ ZERO (11) -
SIGN
_ NaN (11) -
SIGN
_ POSITIVE _ FINITE (11) -
SIGN
_ POSITIVE _ INFINITE (11) -
SIGN
_ POSITIVE _ ZERO (11) -
bigdecimal
/ util (11) - ceil (22)
-
double
_ fig (11) - exp (11)
- exponent (11)
- floor (22)
- hash (11)
- limit (11)
- log (11)
- ludecomp (11)
- mode (22)
- nlsolve (11)
- pow (22)
- power (14)
- precs (11)
- rank (11)
- round (33)
- sign (11)
- split (11)
-
to
_ d (11) -
to
_ i (11) -
to
_ int (11) -
to
_ s (22) - truncate (22)
検索結果
先頭5件
-
bigdecimal (38598.0)
-
bigdecimal は浮動小数点数演算ライブラリです。 任意の精度で 10 進表現された浮動小数点数を扱えます。
...bigdecimal は浮動小数点数演算ライブラリです。
任意の精度で 10 進表現された浮動小数点数を扱えます。
//emlist[][ruby]{
require 'bigdecimal'
a = BigDecimal("0.123456789123456789")
b = BigDecimal("123456.78912345678", 40)
print a + b # => 0.123456912580245903456......に対し、BigDecimal では正確な値を得る事ができます。
//emlist[例1: 0.0001 を 10000 回足す場合。][ruby]{
sum = 0
for i in (1..10000)
sum = sum + 0.0001
end
print sum # => 0.9999999999999062
//}
//emlist[例2: 0.0001 を 10000 回足す場合。(BigDecimal)][ruby]{
requi......by]{
require "bigdecimal"
require "bigdecimal/math"
a = BigMath.E(10)
p c = "0.123456789" * a # => "0.1234567890.123456789"
//}
これは、String#* の内部で、BigDecimal が暗黙的に Integer に変換された結果です。
===[a:internal_structure] 内部構造
BigDecimal内部で浮... -
Integer
# to _ d -> BigDecimal (21139.0) -
自身を BigDecimal に変換します。BigDecimal(self) と同じです。
...自身を BigDecimal に変換します。BigDecimal(self) と同じです。
@return BigDecimal に変換したオブジェクト... -
Integer
# pow(other , modulo) -> Integer (21113.0) -
算術演算子。冪(べき乗)を計算します。
...に巨大な値を生成せずに (self**other) % modulo と同じ結果を返します。
@return 計算結果
@raise TypeError 2引数 pow で Integer 以外を指定した場合に発生します。
@raise RangeError 2引数 pow で other に負の数を指定した場合に発生します。
//......数になりそうなとき、警告を出したうえで Float::INFINITY を返します。
//emlist[計算を放棄して Float::INFINITY を返す例][ruby]{
p 100**9999999
# => warning: in a**b, b may be too big
# Infinity
//}
判定の閾値は変わりえます。
@see BigDecimal#power... -
Integer
# **(other) -> Numeric (21013.0) -
算術演算子。冪(べき乗)を計算します。
...に巨大な値を生成せずに (self**other) % modulo と同じ結果を返します。
@return 計算結果
@raise TypeError 2引数 pow で Integer 以外を指定した場合に発生します。
@raise RangeError 2引数 pow で other に負の数を指定した場合に発生します。
//......数になりそうなとき、警告を出したうえで Float::INFINITY を返します。
//emlist[計算を放棄して Float::INFINITY を返す例][ruby]{
p 100**9999999
# => warning: in a**b, b may be too big
# Infinity
//}
判定の閾値は変わりえます。
@see BigDecimal#power... -
Integer
# pow(other) -> Numeric (21013.0) -
算術演算子。冪(べき乗)を計算します。
...に巨大な値を生成せずに (self**other) % modulo と同じ結果を返します。
@return 計算結果
@raise TypeError 2引数 pow で Integer 以外を指定した場合に発生します。
@raise RangeError 2引数 pow で other に負の数を指定した場合に発生します。
//......数になりそうなとき、警告を出したうえで Float::INFINITY を返します。
//emlist[計算を放棄して Float::INFINITY を返す例][ruby]{
p 100**9999999
# => warning: in a**b, b may be too big
# Infinity
//}
判定の閾値は変わりえます。
@see BigDecimal#power... -
BigDecimal
. mode(s) -> Integer | nil (17394.0) -
BigDecimal の計算処理の制御方法を設定、確認します。
...
BigDecimal の計算処理の制御方法を設定、確認します。
第2引数を省略、または nil を指定すると現状の設定値を返します。
@param s 制御方法の設定、確認を行う項目を BigDecimal::EXCEPTION_*、
BigDecimal::ROUND_MODE のいずれか......で指定します。
@param v 引数 s が BigDecimal::ROUND_MODE の場合は
BigDecimal::ROUND_MODE 以外の BigDecimal::_ROUND* のいず
れかを指定します。指定した丸め処理が有効になります。
それ以外の場合は、true、false、nil の......uire 'bigdecimal'
flag = false # デフォルト値
f = BigDecimal::mode(BigDecimal::EXCEPTION_NaN,flag)
f = BigDecimal::mode(BigDecimal::EXCEPTION_INFINITY,flag)
f = BigDecimal::mode(BigDecimal::EXCEPTION_UNDERFLOW,flag)
f = BigDecimal::mode(BigDecimal::EXCEPTION_OVERFLOW,flag)
f = BigDecimal::mode... -
BigDecimal
. mode(s , v) -> Integer | nil (17394.0) -
BigDecimal の計算処理の制御方法を設定、確認します。
...
BigDecimal の計算処理の制御方法を設定、確認します。
第2引数を省略、または nil を指定すると現状の設定値を返します。
@param s 制御方法の設定、確認を行う項目を BigDecimal::EXCEPTION_*、
BigDecimal::ROUND_MODE のいずれか......で指定します。
@param v 引数 s が BigDecimal::ROUND_MODE の場合は
BigDecimal::ROUND_MODE 以外の BigDecimal::_ROUND* のいず
れかを指定します。指定した丸め処理が有効になります。
それ以外の場合は、true、false、nil の......uire 'bigdecimal'
flag = false # デフォルト値
f = BigDecimal::mode(BigDecimal::EXCEPTION_NaN,flag)
f = BigDecimal::mode(BigDecimal::EXCEPTION_INFINITY,flag)
f = BigDecimal::mode(BigDecimal::EXCEPTION_UNDERFLOW,flag)
f = BigDecimal::mode(BigDecimal::EXCEPTION_OVERFLOW,flag)
f = BigDecimal::mode... -
BigDecimal
# split -> [Integer , String , Integer , Integer] (17337.0) -
BigDecimal 値を 0.xxxxxxx*10**n と表現したときに、 符号 (NaNのときは 0、それ以外は+1か-1になります)、 仮数部分の文字列("xxxxxxx")と、基数(10)、更に指数 n を配列で返します。
...
BigDecimal 値を 0.xxxxxxx*10**n と表現したときに、
符号 (NaNのときは 0、それ以外は+1か-1になります)、
仮数部分の文字列("xxxxxxx")と、基数(10)、更に指数 n を配列で返します。
//emlist[][ruby]{
require "bigdecimal"
a = BigDecimal("3.14159265")
f......, x, y, z = a.split
//}
とすると、f = 1、x = "314159265"、y = 10、z = 1 になります。
従って、以下のようにする事で Float に変換することができます。
//emlist[][ruby]{
s = "0."+x
b = f*(s.to_f)*(y**z)
//}
@see BigDecimal#to_f... -
BigDecimal
# round -> Integer (17259.0) -
クラスメソッド BigDecimal.mode(BigDecimal::ROUND_MODE,flag) で指定した BigDecimal::ROUND_MODE に従って丸め操作を実行します。
...クラスメソッド BigDecimal.mode(BigDecimal::ROUND_MODE,flag) で指定した
BigDecimal::ROUND_MODE に従って丸め操作を実行します。
@param n 小数点以下の桁数を整数で指定します。
@param b 丸め処理の方式として、BigDecimal.mode の第 1 引数と同......
BigDecimal.mode(BigDecimal::ROUND_MODE,flag) で何も指定せず、
かつ、引数を指定しない場合は
「小数点以下第一位の数を四捨五入して整数(BigDecimal 値)」にします。
//emlist[][ruby]{
require "bigdecimal"
BigDecimal("1.23456").round # => 1
BigDecimal("-......e "bigdecimal"
BigDecimal("1.23456").round(4).to_f # => 1.2346
BigDecimal("15.23456").round(-1).to_f # => 20.0
//}
2番目の引数を指定すると、BigDecimal.mode の指定を無視して、指定さ
れた方法で丸め操作を実行します。
//emlist[][ruby]{
require "bigdecimal"
B... -
BigDecimal
# round(n) -> BigDecimal (17259.0) -
クラスメソッド BigDecimal.mode(BigDecimal::ROUND_MODE,flag) で指定した BigDecimal::ROUND_MODE に従って丸め操作を実行します。
...クラスメソッド BigDecimal.mode(BigDecimal::ROUND_MODE,flag) で指定した
BigDecimal::ROUND_MODE に従って丸め操作を実行します。
@param n 小数点以下の桁数を整数で指定します。
@param b 丸め処理の方式として、BigDecimal.mode の第 1 引数と同......
BigDecimal.mode(BigDecimal::ROUND_MODE,flag) で何も指定せず、
かつ、引数を指定しない場合は
「小数点以下第一位の数を四捨五入して整数(BigDecimal 値)」にします。
//emlist[][ruby]{
require "bigdecimal"
BigDecimal("1.23456").round # => 1
BigDecimal("-......e "bigdecimal"
BigDecimal("1.23456").round(4).to_f # => 1.2346
BigDecimal("15.23456").round(-1).to_f # => 20.0
//}
2番目の引数を指定すると、BigDecimal.mode の指定を無視して、指定さ
れた方法で丸め操作を実行します。
//emlist[][ruby]{
require "bigdecimal"
B...