Bug #72
Float の NaN,Infinity,+0.0,-0.0
| Status: | Open | Start date: | 02/15/2008 | |
|---|---|---|---|---|
| Priority: | Low | Due date: | ||
| Assignee: | - | % Done: | 0% |
|
| Category: | doc | |||
| Target version: | - | |||
| reporter: | rock | ruby_version: | 1.8,1.9 |
Description
class Float のページに,NaN,Infinity,+0.0,-0.0 についての説明がありません。
これらの“数”の意味のほかに,以下のようなことを盛り込むべきかと思います。
* これらの“数”の発生のさせ方,あるいはリテラル表現
* これらの“数”の関係(-0.0 == 0.0 は真だが (0.0/0) == (0.0/0) は偽とか,も)
* これらの“数”の文字列表現(-0.0.to_s が "-0.0" でなく "0.0" になることも)
* +0.0 と -0.0 の区別の仕方
* 0.0 と +0.0 も違う(0.0.equal? +0.0 #=> false)こと
あと,"Infinity" や "NaN" は単なる文字列表現であって,Float クラスの定数というわけではない,
なんて入れなくていいでしょうか。
上記のことが書かれていれば,Float#infinite? にある
浮動小数点数の 0 による除算は ∞ です。
とか,Float#nan?にある
浮動小数点数 0 の 0 による除算は NaN です。
は削除していいでしょう。前者は間違いですし(反例:-1.0/0)
History
Updated by date (Ken DATE) almost 4 years ago
sheepman (2008-02-16 (土) 00:10:47) 0.0.equal? +0.0 が false なのはそれぞれが異なるオブジェクト ID を持つからです。 -0.0.to_s は僕の手元では "-0.0" になるようです。 Float の細かなど動作はプラットフォーム依存であり、知りたい人はIEEE 754を読むべきなんだと思います。読んだことないけど。 sheepman (2008-02-16 (土) 00:58:18) r2484 で Float#infinite? と Float#nan? だけ修正。
Updated by sheepman (Takashi Tamura) about 3 years ago
- Assignee deleted (
sheepman (Takashi Tamura))