- - PR -
小数点を求める場合。
| 投稿者 | 投稿内容 | ||||||||
|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2004-01-24 02:14
つーか。
そもそも有限桁の2進数で10進数の0.05を表現することはできないわけですね。 有限桁の2進数で表現できる10進小数は、 0.5,0.25,0.125,0.0625,0.03125,0.015625,… およびこれらの数の和です。 ああ、なんでこんな時間に会社にいるんだろ。 | ||||||||
|
投稿日時: 2004-01-24 09:22
unibon です。こんにちわ。
「表現」の定義にもよりますが、
では 0.05 が表示されますので、「表現」はできています。 Java はコード中に文字列として書いた数値(上記の 0.05)を double 型に変換した後、再び文字列に戻しても元に戻る(0.0000001 とか 0.9999999 のような端数が出ない)、という仕組みになっていますが、これって結構複雑なロジックなんだと思います。JDK に付属のソースコードに2進数→10進数の変換用の、非 public なクラスがありますが、かなり長大なコードになっています。 ただ、やはりおっしゃるように有限の桁数を使っていますので、ひとたび演算すると、元に戻らなくなってしまいます。 #あとでコードの間違いを修正(2行しかないのに [ メッセージ編集済み 編集者: unibon 編集日時 2004-01-24 09:24 ] | ||||||||
