[過去ログ] Pythonのお勉強 Part62 (1002レス)
上下前次1-新
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
130: デフォルトの名無しさん (ササクッテロル Spbb-b7Cm) [sage] 2019/10/02(水) 15:47:10 ID:gHIFLYdkp(1/4) AAS
>>128 分数で扱うのなら二進数も10進数も無い。
ただ、最終的に浮動小数点数として扱うなら
2進数の浮動小数点数は、ハードウェアの演算機の精度で有効桁数が決まるが、10進数の場合は自由に決められるから自分の好みの結果が得られる。
132: デフォルトの名無しさん (ササクッテロル Spbb-b7Cm) [sage] 2019/10/02(水) 16:10:31 ID:gHIFLYdkp(2/4) AAS
なんでそうなるって、decimal が、そう言う仕様で作られてるからに決まってんじゃん。
134(1): デフォルトの名無しさん (ササクッテロル Spbb-b7Cm) [sage] 2019/10/02(水) 16:37:42 ID:gHIFLYdkp(3/4) AAS
>>133 ボケてるのどっち?
15. 浮動小数点演算、その問題と制限
外部リンク[html]:docs.python.org
近年の殆どのコンピュータでは float 型は、分子に最も重大なビットから始めて最初の 53 ビットを使い、分母に 2 の累乗を使った、二進小数を使って近似されます。
1/10 の場合は、二進小数は 3602879701896397 / 2 ** 55 となります。
これは、1/10 に近いですが、厳密に同じ値ではありません。
ハードウェアの浮動小数点演算をサポートしている全ての言語で同じ種類の問題を見つけることができます
Python は 本当に float の正確な値が必要なレアケースに対応するためのツールを提供しています。 float.as_integer_ratio() メソッドは float の値を有理数として表現します:
>>> x = 3.14159
>>> x.as_integer_ratio()
(3537115888337719, 1125899906842624)
>>> x == 3537115888337719 / 1125899906842624
true
fractions モジュールと decimal モジュールを使うとこれらの計算を簡単に行えます
136: デフォルトの名無しさん (ササクッテロル Spbb-b7Cm) [sage] 2019/10/02(水) 17:51:41 ID:gHIFLYdkp(4/4) AAS
>>135 最後は捨て台詞? 勉強してね。
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.048s