データの分析、グラフ作成、および通信のためのツールを備えた Microsoft 表計算ソフトウェアのファミリ。
対策を記載しませんでしたが、お分かりのように計算値をROUND関数で四捨五入して整数値にすることで解決できます。
=ROUND(0.004/(125*10^-9),0)
このブラウザーはサポートされなくなりました。
Microsoft Edge にアップグレードすると、最新の機能、セキュリティ更新プログラム、およびテクニカル サポートを利用できます。
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 表計算ソフトウェアのファミリ。
ロックされた質問。 この質問は、Microsoft サポート コミュニティから移行されました。 役に立つかどうかに投票することはできますが、コメントの追加、質問への返信やフォローはできません。
質問作成者が受け入れた回答
対策を記載しませんでしたが、お分かりのように計算値をROUND関数で四捨五入して整数値にすることで解決できます。
=ROUND(0.004/(125*10^-9),0)
質問作成者が受け入れた回答
LCM関数の引数は整数以外の数値を入力した場合は、切り捨てした数値の最小公倍数が表示されます。
すなわち、「=0.004/(125*10^-9)」の結果は32000のように見えますが、小数点以下の数値の丸め誤差により、実際は32000より小さい値であることが以下の数式でTRUEが返ることからわかります。
=A1-32000<0
したがって、この場合は、31999との最小公倍数が計算されることになります。
ちなみに
「=(A1-32000)*10^15」と入力して小数点以下の数値を拡大して見てみると「-3637.97880709171」のようなマイナスの数値であることがわかります。
マックちゃん様
原因と対策について丁寧な説明ありがとうございます。
良く理解できました。