プロが教えるわが家の防犯対策術!

例えば、0.0001と1/10^4を入力した場合、どちらの方が高い精度で計算してくれるのでしょうか?

質問者からの補足コメント

  • うーん・・・

    やはり分数表示の方が精度が良いのではないでしょうか?

    1/3
    の方が
    0.33333333333、、
    よりどこまでも正確です。

    しかし、ソフトがそこまで面倒見良く考えてくれているのか?不明です。

      補足日時:2024/01/14 12:22

A 回答 (7件)

No.1 です。



>1/3
>の方が
>0.33333333333、、
>よりどこまでも正確です。

それは10進数で「表記」した場合の話。
2進数の分数がどういうものか知っていますか?

a × 2^(-1) + b × 2^(-2) + c × 2^(-3) + d × 2^(-4) + e × 2^(-5) + ・・・
= a × (1/2) + b × (1/2)^2 + c × (1/2)^3 + d × (1/2)^4 + e × (1/2)^5 + ・・・

が2進数の「0.abcde・・・」です。(2進数だと a, b, c, ・・・は「0 か 1」です)

「分数」は単なる「表記法」であって、値そのものは変わりません。
「桁落ち」は「10進数を、何桁の2進数に置き換えているか」だけの問題です。
    • good
    • 0
この回答へのお礼

ありがとう

ご回答ありがとうございます。

やはり各計算ソフトの設計思想によるかもしれません。
一般論はないのですね。

お礼日時:2024/01/14 15:03

どういう状況を想像しているんだろうか. そして, ここでいう「計算」とはいったいどのような処理なのだろうか.



世の中に「計算ソフト」なるものがただ 1種類存在しそれは「計算ソフト」と呼ぶだけで一般に理解できる, ということではなければそもそも質問自体が成立しない.

「計算ソフト」が「なんらかの計算をしてくれるプログラム」のことを指しているとしても, 一般論として「全ての『計算ソフト』でどのような『計算』をしても精度については一貫して同じ結果が得られる」という根拠はない. 従って「どちらの方が高い精度で計算してくれるのでしょうか?」にはやはり答えられない.

「1/10^4」が 0 になる可能性も否定はできないし, 内部的な事情で「1/10^4」の方が精度がよくなるということも考えられなくはない.
    • good
    • 0
この回答へのお礼

ありがとう

ご回答ありがとうございます。

やはり各計算ソフトの設計思想によるかもしれません。
一般論はないのですね。

お礼日時:2024/01/14 15:03

所詮、コンピューターは0と1で計算をしていて、内部でも浮動小数点で処理をしているので、分数表記を行っても、内部は小数です。

    • good
    • 0
この回答へのお礼

ありがとう

ご回答ありがとうございます。

やはり各計算ソフトの設計思想によるかもしれません。
一般論はないのですね。

お礼日時:2024/01/14 15:03

一概に言えません


・内部で値をどう保存しているか?
 固定小数点/浮動小数点
 2進数/10進数 等
・「0.0001」「1/10^4」という「文字列」をどう解釈してどう「内部の値」に変換しているか?
 「0.0001」を内部では「1/10^4」で計算して求めている可能性もある
    • good
    • 1
この回答へのお礼

ありがとう

ご回答ありがとうございます。

やはり各計算ソフトの設計思想によるかもしれません。
一般論はないのですね。

お礼日時:2024/01/14 15:03

どちらも、二進数では循環小数になりますから、大した精度を得られませんし、今どきのコンパイラを通せば計算を最適化してくれますので、同じになります。


インタプリタの場合には、後者は収束性の悪い対数を取って4倍してから指数にしますので、計算時間がかかる上に精度も下がるはずです。
    • good
    • 0
この回答へのお礼

ありがとう

ご回答ありがとうございます。

>今どきのコンパイラを通せば計算を最適化してくれますので、同じになります。

今使っている計算ソフトでは、微妙な差異が発生します。

お礼日時:2024/01/14 15:02

小数で書き込んだ方が計算する必要がないので高精度ではないでしょうかね。

    • good
    • 0
この回答へのお礼

ありがとう

ご回答ありがとうございます。

それは一理あるかもしれません。

お礼日時:2024/01/14 15:01

そのソフトの中での「数値の取り扱い方」によります。


通常の、まっとうなプログラマーが作ったソフトなら、どちらも同じでしょう。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A