1÷3×3を電卓ですると「0.999999999・・・・・」となります。

エクセルでその計算をすると小数点以下何十位にしても「1」(もしくは「1.00000・・・・」とでます。これはどのような計算方法なのでしょうか?当たり前と言えば当たり前ですが。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2004/09/28 10:14:47
  • 終了:--

回答(7件)

id:taknt No.1

きゃづみぃ回答回数13539ベストアンサー獲得回数11982004/09/28 10:19:58

ポイント15pt

Windowsについてる電卓も 1となります。

純循環小数というフラグでも もってるのでは?

id:web_nao No.2

web_nao回答回数7ベストアンサー獲得回数02004/09/28 10:21:01

ポイント15pt

四捨五入されるためです。

id:nakimusibomber

どういう条件で四捨五入されるのでしょうか?

2004/09/28 10:24:32
id:diabah_blue No.3

diabah_blue回答回数129ベストアンサー獲得回数12004/09/28 10:26:07

ポイント14pt

URLはダミーです。

電卓が逐次的に計算をしているのに対し、

エクセルでは式をまとめて評価しているからだと思います。

つまり、電卓では1÷3=0.333333・・・と言う計算がなされた時点である程度の桁数で数値が終わっているので3を掛けてもその桁までしか得られないということです。

id:jp0134 No.4

jp0134回答回数333ベストアンサー獲得回数02004/09/28 10:28:47

ポイント14pt

エクセルの計算結果は、上のURLページに書かれているとおり、切り捨てなどの設定がなされています。

このページから、色々な関数を調べると判りますよ。

id:aki73ix No.5

aki73ix回答回数5224ベストアンサー獲得回数272004/09/28 10:31:00

ポイント14pt

A1とA4のセルをごらん下さい

両方0.3333333333333330です

しかし *3かけると値が違います

つまり、1÷3×3を計算する過程で、セルを直接参照するわけではなく、計算結果を保持しながら計算してるのでしょうね

id:kikuta No.6

kikuta回答回数140ベストアンサー獲得回数02004/09/28 10:32:09

ポイント14pt

ダミーです。

こんにちは。

一般的な電卓では、1÷3をいったん計算し、その結果、即ち0.33333に3をかけます。従って、0.9999になってしまいます。もちろん正しい計算ではありません。

式を入力できるような電卓、(過去に持っていたことがあります)はちゃんと1になります。

Excelは正しく計算しているということでしょう。

id:EddyYamanaka No.7

EddyYamanaka回答回数385ベストアンサー獲得回数12004/09/28 10:33:42

ポイント14pt

http://www.hatena.ne.jp/1096334087#

1÷3×3を電卓ですると「0.999999999・・・・・」となります。 エクセルでその計算をすると小数点以下何十位にしても「1」(もしくは「1.00000・・・・」とでます。こ.. - 人力検索はてな

パソコンのEXCELや電卓では内部でバイナリの実数演算を行い、結果を表示する為に10進数変換してるので、必要な桁数で四捨五入されます。桁数(精度)はCPUやOSで異なります。

id:nakimusibomber

ありがとうございました。

2004/09/28 10:44:56
  • id:cx20
    参考情報

    書きかけていたら終了してしまったので、ここに投稿しておきます。

    コンピュータは数値の内部表現として2進数を用います。

    小数点を含む2進数を計算できる電卓ソフトがありますので、
    これを使って計算してみると・・・。

    ■ 関数電卓 LFC
    http://www.vector.co.jp/soft/win95/personal/se225747.html

    1/3 = 0.01010101010101010101010101010101(2進数)
    小数点第1位 … 1/2 * 0 = 0.5 * 0
    小数点第2位 … 1/4 * 1 = 0.25 * 1
    小数点第3位 … 1/8 * 0 = 0.125 * 0
    小数点第4位 … 1/16 * 1 = 0.0625 * 1
    小数点第5位 … 1/32 * 0 = 0.03125 * 0
    小数点第6位 … 1/64 * 1 = 0.015625 * 1
    小数点第7位 …1/128 * 0 = 0.0078125 * 0
    小数点第8位 …1/256 * 1 = 0.00390625 * 1
    小数点第9位 …1/512 * 0 = 0.001953125 * 0
    小数点第*位 …     :

    合計 = 0.3333333333333333333333333333333333333333333333333333333333333333

    1/3*3 = 0.11111111111111111111111111111111(2進数)
    小数点第1位 … 1/2 * 1 = 0.5 * 1
    小数点第2位 … 1/4 * 1 = 0.25 * 1
    小数点第3位 … 1/8 * 1 = 0.125 * 1
    小数点第4位 … 1/16 * 1 = 0.0625 * 1
    小数点第5位 … 1/32 * 1 = 0.03125 * 1
    小数点第6位 … 1/64 * 1 = 0.015625 * 1
    小数点第7位 …1/128 * 1 = 0.0078125 * 1
    小数点第8位 …1/256 * 1 = 0.00390625 * 1
    小数点第9位 …1/512 * 1 = 0.001953125 * 1
    小数点第*位 …     :

    合計 = 0.9999999999999999999999999999999999999999999999999999999999999999

    のようになり、1にならないことが分かります。
    これがコンピュータの内部的な動きです。

    では、なぜ Excel では 1 となるのか?
    それは、仕様だから・・・ということのようですね(^^;;;
    下記は、マイクロソフトの情報です。

    ■ 浮動小数点数値演算の結果に含まれる丸め誤差について
    http://support.microsoft.com/?kbid=78113

    <関連情報>
    ■ Excelの演算誤差
    http://oku.edu.mie-u.ac.jp/~okumura/software/excel/roundoff.html
  • id:RyuichiXP
    Re:参考情報2

     計算結果の値うをαとします。
     えーと普通の電卓だとα=0.9999999...−①になりますが、
     関数電卓だとα=1−②となります。
     数学的な話ですが、①は「初項0.9。公比0.1の無限等比級数の和」
    となっており実際にその和をpとすると、
    p=0.9/(1-0.1)=1 となって、そのような意味では①と②は
    意味が同じです。


    [cf]初項をA公比をrとする。|r|<1ならば、その和Sは
    S=A/(1-r) と表せます。※URLはダミーです。



    http://www.horipro.co.jp

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません