「計算機イプシロン」の版間の差分
imported>Administrator |
imported>Administrator |
||
| (同じ利用者による、間の1版が非表示) | |||
| 3行目: | 3行目: | ||
浮動小数点の仮数指数表記では「1未満」だと指数部だけを使ってどこまでも小さくなってしまうため、何が何でも仮数部を使うために「1以上」の数字を用いる。そこから1を引けば純粋に「最小の数」になる。 | 浮動小数点の仮数指数表記では「1未満」だと指数部だけを使ってどこまでも小さくなってしまうため、何が何でも仮数部を使うために「1以上」の数字を用いる。そこから1を引けば純粋に「最小の数」になる。 | ||
== 計算 == | ==計算== | ||
* 浮動小数点変数に1を代入する | *浮動小数点変数に1を代入する | ||
* 浮動小数点変数をひたすら1/2していく | *浮動小数点変数をひたすら1/2していく | ||
* 浮動小数点変数がゼロになったら直前の値が計算機イプシロン | *浮動小数点変数がゼロになったら直前の値が計算機イプシロン | ||
=== PHP === | ===PHP=== | ||
[[PHP]]での実装例。<syntaxhighlight lang="php"> | [[PHP]]での実装例。<syntaxhighlight lang="php"> | ||
<?php | <?php | ||
| 22行目: | 22行目: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
== 関連項目 == | ===Python=== | ||
[[Python]]での実装例。 | |||
<syntaxhighlight lang="python"> | |||
a = 1.0 | |||
b = 0.0 | |||
while 0 < a : | |||
b = a | |||
a = a / 2.0 | |||
print("{0:09.8E}".format(b)) | |||
</syntaxhighlight> | |||
==関連項目== | |||
* [[.NETのfloat.Epsilon定数は計算機イプシロンではない]] | *[[.NETのfloat.Epsilon定数は計算機イプシロンではない]] | ||