種類
- インスタンスメソッド (22)
- ライブラリ (11)
- 文書 (11)
- クラス (11)
ライブラリ
- ビルトイン (22)
- bigdecimal (11)
クラス
- BigDecimal (11)
- Rational (11)
キーワード
-
1
. 6 . 8から1 . 8 . 0への変更点(まとめ) (11) - Numeric (11)
- bigdecimal (11)
- split (11)
検索結果
先頭5件
-
Rational
# to _ f -> Float (18173.0) -
自身の値を最も良く表現する Float に変換します。
...l(2).to_f # => 2.0
Rational(9, 4).to_f # => 2.25
Rational(-3, 4).to_f # => -0.75
Rational(20, 3).to_f # => 6.666666666666667
Rational(1, 10**1000).to_f # => 0.0
Rational(-1, 10**1000).to_f # => -0.0
Rational(10**1000).to_f # => Infinity
Rational(-10**1000... -
1
. 6 . 8から1 . 8 . 0への変更点(まとめ) (42.0) -
1.6.8から1.8.0への変更点(まとめ) * ((<1.6.8から1.8.0への変更点(まとめ)/インタプリタの変更>)) * ((<1.6.8から1.8.0への変更点(まとめ)/追加されたクラス/モジュール>)) * ((<1.6.8から1.8.0への変更点(まとめ)/追加されたメソッド>)) * ((<1.6.8から1.8.0への変更点(まとめ)/追加された定数>)) * ((<1.6.8から1.8.0への変更点(まとめ)/拡張されたクラス/メソッド(互換性のある変更)>)) * ((<1.6.8から1.8.0への変更点(まとめ)/変更されたクラス/メソッド(互換性のない変更)>)) * ((<1.6.8から1.8.0への変更点(まとめ)/文法の変更>)) * ((<1.6.8から1.8.0への変更点(まとめ)/正規表現>)) * ((<1.6.8から1.8.0への変更点(まとめ)/Marshal>)) * ((<1.6.8から1.8.0への変更点(まとめ)/Windows 対応>)) * ((<1.6.8から1.8.0への変更点(まとめ)/廃止された(される予定の)機能>)) * ((<1.6.8から1.8.0への変更点(まとめ)/ライブラリ>)) * ((<1.6.8から1.8.0への変更点(まとめ)/拡張ライブラリAPI>)) * ((<1.6.8から1.8.0への変更点(まとめ)/バグ修正>)) * ((<1.6.8から1.8.0への変更点(まとめ)/サポートプラットフォームの追加>))
...defined>)) [new]
追加
=== NameError
: ((<NameError#name|NameError/name>)) [new]
追加
=== NilClass
: ((<NilClass#to_f|NilClass/to_f>)) [new]
追加
=== Numeric
: ((<Numeric#div|Numeric/div>)) [new]
: ((<Numeric#quo|Numeric/quo>)) [new]
追加 ((<ruby-dev:19423>))......ブルクォート
を使用していることに注意) ((<ruby-bugs-ja:PR#261>)), ((<ruby-dev:17446>))
: [parser] [change]
: ((<String#to_f|String/to_f>)) [change]
: ((<組み込み関数/Float>))() [change]
文字列を浮動小数点数に変換する内部処理で、ライブラリ関数......け付けないために、long の範囲の
数値を指定することができませんでした。((<ruby-talk:72257>))
syscall(1, 2**30)
=> -:1:in `syscall': wrong argument type Bignum (expected String) (TypeError)
from -:1
ruby 1.6.8 (2002-12-24)... -
BigDecimal
# split -> [Integer , String , Integer , Integer] (34.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... -
Numeric (30.0)
-
数値を表す抽象クラスです。Integer や Float などの数値クラス は Numeric のサブクラスとして実装されています。
...o - - -
* | - - o o o o o
** | - - o o o o o
+ | - - o......- - - -
to_c | o - - - - - o
to_f | - - o o o o o
to_i | - o -......ndup(d=0)
x = 10**d
if self > 0
self.quo(x).ceil * x
else
self.quo(x).floor * x
end
end
def rounddown(d=0)
x = 10**d
if self < 0
self.quo(x).ceil * x
else
self.quo(x).floor * x
end
end
def roundoff(d=0)
x = 10**d
if self < 0......& | - o - - -
* | - o o o o
** | - o o o o
+ | - o o o o......times | - o - - -
to_c | o - - - o
to_f | - o o o o
Numeric Integer Float Rational Complex
-... -
bigdecimal (30.0)
-
bigdecimal は浮動小数点数演算ライブラリです。 任意の精度で 10 進表現された浮動小数点数を扱えます。
...下の構造体要素 frac) で管理されます。
概念的には、以下のようになります。
<浮動小数点数> = 0.xxxxxxxxx * BASE ** n
ここで、x は仮数部を表す数字、BASE は基数 (10 進表現なら 10)、
n は指数部を表す整数値です。BASEが大きい......int exponent; // 指数部の値(仮数部*BASE**exponent)
unsigned long frac[1]; // 仮数部の配列(可変)
} Real;
例えば BASE=10000 のとき 1234.56784321 という数字は、
0.1234 5678 4321*(10000)**1
ですから frac[0] = 1234、frac[1] = 5678、frac[2] =......= 0
while line = file.gets
s = s + line.to_f
end
puts s # => 0.30000000000000004
end
//}
2 進数で計算すると誤差が入る可能性があります。
例えば 0.1 を2進で表現すると
0.1 = b1*2**(-1)+b1*2**(-2)+b3*2**(-3)+b4*2**(-4) ……
と無限に続いてしまいま...