Object Pascal 入門の「実数型」ページに加筆しました。そして...

Pascal 日和 ホームページの「Object Pascal入門-実数型」に実数型の内部表現や実数リテラルの型の選択ルールについて説明を追加しました。

実数リテラルの型の選択については計算処理を重視する方にとっては重要な問題だと思います。Free PascalやLazarusを長年使用してきましたが、こういう仕様になっているとは最近まで気が付きませんでした。うかつと言わざるを得ません。最初はコンパイラのバグかと思いましたが、調べたところ対応するディレクティブやコマンドライン コンパイラオプションが存在するので仕様で間違いないようです。
Free Pascal 3.2.2 のデフォルトでは、1.0 / 3.0 が 0.333333343267441 とSingle型の結果となってしまいます。開発版の FPC 3.3.1 でも同じなので、次リリースも変わらないと思われます。
是非一読ください。

Embarcadero Delphiでも確認しましたが、DelphiはデフォルトでDouble型で計算しています。

コンパイラディレクティブ「{$MINFPCONSTPREC 64}」についてはObject Pascal 備忘録のひな型ソースにも追加の検討をします。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください