タイトル | : Re^2: SQRの単精度と倍精度の表示検証ソース |
投稿日 | : 2024/04/09(火) 22:44 |
投稿者 | : konno | 番 号 | : 11208 11207 番 としき さんへのコメント コメント数 1 |
> > 110 defdbl a-z '倍精度指定> > ここを単精度指定にしたらどうなるか、> この結果を教えてください。> よろしくお願いいたします。もちろん 169 が素数と表示されます。 元々単精度でそういう表示になるところから始まった話題ですから。 色々試していった結果結構ソースが変わってしまいましたが。(^^; ところで、USING を使ってみたら違いが表示されました。 1000 'pn88.bas 1010 ' defdbl a-z '倍精度指定 1020 'defdbl n '倍精度指定 1030 OPEN "SQR.dat" FOR OUTPUT AS #1 1040 INPUT N 1050 IF (N/2 <> INT(N/2))=0 THEN IF N=2 THEN PRINT "素数" ELSE PRINT "合成数" 1060 J!=SQR(N) 'ELSE 1070 FOR I!=3 TO SQR(N) STEP 2 1080 IF N/I! = INT(N/I!) THEN 1100 '*EXIT1 1090 NEXT I! 1100 ' *EXIT1 1110 PRINT USING " .##################";I!-SQR(N) '.14 1120 PRINT#1, USING " .##################";I!-SQR(N) '.14 1130 IF I!<=SQR(N) THEN PRINT "合成数";I!;J! 1140 IF I!<=SQR(N) THEN PRINT#1, "合成数";I!;J! 1150 IF I!>SQR(N) THEN PRINT "素数";I!;J! 1160 IF I!>SQR(N) THEN PRINT#1, "素数";I!;J! 1170 INPUT A 1180 END この結果は .000001907350000000 素数 13 13 このように単精度の時 I!-SQR(N) で誤差が表示されました。 倍精度ではゼロになりました。 98実機ではどうなるでしょうね。
- No.11208 一括表示へ - コメント元:11207 一括表示へ - [ 返信 ] [引用無し] pre