小数を含む計算結果の不具合

投稿者:たけちゃん 投稿日:2023/04/05(Wed) 15:59:45 No.2271

こんにちは、お世話になります。

下記のプログラムで正しく計算されないようです。
計算結果は「0.3」となるはずですが、実際には「0.30000000000000004」と表示されます。他にも試しましたが、計算結果が「0.3」になる場合に不具合が起こるようです。
どうぞよろしくお願い致します。

------プログラム------

結果は 2
結果/10+0.1を報告

◆動作環境情報◆
プロデル 1.8.1164
Windows 10 Pro 64ビット
メモリ:8 GB

不具合ではなく丸め誤差です

投稿者:ゆうと 投稿日:2023/04/09(Sun) 02:38:31 No.2273

こんにちは

> 下記のプログラムで正しく計算されないようです。
> 計算結果は「0.3」となるはずですが、実際には「0.30000000000000004」と表示されます。
> 他にも試しましたが、計算結果が「0.3」になる場合に不具合が起こるようです。

こちらは不具合ではなく、浮動小数点型で起こる丸め誤差による現象です。
https://docs.utopiat.net/rdr/manual/syntax/expr.html#round

詳しい説明はこちらが参考になるかと思います。
https://dobon.net/vb/dotnet/beginner/floatingpointerror.html

0.2+0.1を計算した時に丸め誤差が発生しますので、一度、固定小数型の変数に入れることで正しく計算されます。
-----------
【結果】=2
【A:固定小数】=結果/10
【B:固定小数】=0.1
A+Bを報告
-----------

参考にしてください。

Re: 不具合ではなく丸め誤差です

投稿者:たけちゃん 投稿日:2023/04/10(Mon) 14:36:52 No.2274

ご返信ありがとうございます。
不具合ではなかったのですね、マニュアルを見逃しておりました。
お手数おかけしすみませんでした。

詳しく教えていただきありがとうございます。

> こんにちは
>
> > 下記のプログラムで正しく計算されないようです。
> > 計算結果は「0.3」となるはずですが、実際には「0.30000000000000004」と表示されます。
> > 他にも試しましたが、計算結果が「0.3」になる場合に不具合が起こるようです。
>
> こちらは不具合ではなく、浮動小数点型で起こる丸め誤差による現象です。
> https://docs.utopiat.net/rdr/manual/syntax/expr.html#round
>
> 詳しい説明はこちらが参考になるかと思います。
> https://dobon.net/vb/dotnet/beginner/floatingpointerror.html
>
> 0.2+0.1を計算した時に丸め誤差が発生しますので、一度、固定小数型の変数に入れることで正しく計算されます。
> -----------
> 【結果】=2
> 【A:固定小数】=結果/10
> 【B:固定小数】=0.1
> A+Bを報告
> -----------
>
> 参考にしてください。

▲ページの先頭へ

- WebForum -