次の方法で共有

LCM関数を利用した計算結果が間違った値になる

Anonymous
2019-02-28T06:54:21+00:00

LCM関数を利用して2値の最小公倍数を求めたのですが、結果が間違った値になります。

例:

セルA1に以下の式を入力します。

=0.004/(125*10^-9)

結果は32000になります。

セルA2に以下の式を入力し、32000と819200の最小公倍数を求めます。

=LCM(A1,819200)

結果は26213580800になります。

正しい結果は4096000です。

10^-9を10^-8にすると3200と819200の最小公倍数819200が表示され問題ない動作になります。

精度の問題でしょうか?

対策があれば教えていただきたいです。

よろしくお願いします。

Microsoft 365 と Office | Excel | 家庭向け | Windows

ロックされた質問。 この質問は、Microsoft サポート コミュニティから移行されました。 役に立つかどうかに投票することはできますが、コメントの追加、質問への返信やフォローはできません。

0 件のコメント コメントはありません

質問作成者が受け入れた回答

Anonymous
2019-02-28T15:18:33+00:00

対策を記載しませんでしたが、お分かりのように計算値をROUND関数で四捨五入して整数値にすることで解決できます。

=ROUND(0.004/(125*10^-9),0)

この回答は役に立ちましたか?

1 人がこの回答が役に立ったと思いました。
0 件のコメント コメントはありません

質問作成者が受け入れた回答

Anonymous
2019-02-28T15:14:57+00:00

LCM関数の引数は整数以外の数値を入力した場合は、切り捨てした数値の最小公倍数が表示されます。

すなわち、「=0.004/(125*10^-9)」の結果は32000のように見えますが、小数点以下の数値の丸め誤差により、実際は32000より小さい値であることが以下の数式でTRUEが返ることからわかります。

=A1-32000<0

したがって、この場合は、31999との最小公倍数が計算されることになります。

ちなみに

「=(A1-32000)*10^15」と入力して小数点以下の数値を拡大して見てみると「-3637.97880709171」のようなマイナスの数値であることがわかります。

この回答は役に立ちましたか?

1 人がこの回答が役に立ったと思いました。
0 件のコメント コメントはありません

1 件の追加の回答

並べ替え方法: 最も役に立つ
  1. Anonymous
    2019-03-04T01:47:53+00:00

    マックちゃん様

    原因と対策について丁寧な説明ありがとうございます。

    良く理解できました。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません