Pascal 日和 ホームページ

更新:2024-11-09


Object Pascal 入門



4. 実数型




 実数型は、単純型の1つで順序型には含まれません。ここでは実数型について説明します。

 32bitプラットフォームと64bitプラットフォームで違いがあるので注意してください。



実数型


 実数型は、数学でいう実数の部分集合を表します。

 Object Pascal では、IEEE-754 浮動小数点を使用します。IEEE-754 浮動小数点には4バイト浮動小数点(単精度)と8バイト浮動小数点(倍精度)があります。

 32bitプラットフォームでは、10バイト浮動小数点(拡張精度)が使用可能です。64bitプラットフォームでは10バイト浮動小数点(拡張精度)は使用できません。

 実数型は、順序型と違い、先行値(1つ前の値)と後続値(1つ後の値)という概念はありません。


■実数型の範囲とサイズ 値には正・負があり、範囲は絶対値を示しています。


値の範囲 (最小 .. 最大) サイズ 有効桁数(10進数)

Real 5.0E-324 .. 1.7E308 8 バイト  (64bit) 15桁  *1)

Single 1.5E-45 .. 3.4E38 4 バイト  (32bit) 7桁

Double 5.0E-324 .. 1.7E308 8 バイト  (64bit) 15桁

Extended 1.9E-4932 .. 1.1E4932 10 バイト (80bit) 19桁

5.0E-324 .. 1.7E308 8 バイト  (64bit) 15桁  *2)

 *1) Real 型は、プラットフォーム依存のネイティブ実数ですが、ここでは Double と同じになります。

 *2) 64bitプラットフォームでは、10バイト浮動小数点(拡張精度)が使用できないため、Extended 型は Double 型と同じになります。


 Object Pascal には、上記の実数の他に、特殊な実数の Comp 型と Currency 型があります。

 これらは、実数に分類されていますが、内部的には8バイト整数として使用されます。


■特殊な実数型の範囲とサイズ


値の範囲 (最小 .. 最大) サイズ

Comp -9223372036854775808 .. 9223372036854775807 8 バイト

Currency -922337203685477.5808 .. 922337203685477.5807 8 バイト


 Currency 型は、内部的には Comp の様に整数で持っていて、計算するときに自動的に 10,000で除算したり乗算して桁を調整します。

 内部的には整数ですが、実数扱いなので、先行値(1つ前の値)と後続値(1つ後の値)という概念はありません。


 32bitプラットフォームでは、実数の定数は、Extended 型になります。

 64bitプラットフォームでは、実数は定数は、Double 型になります。


 64bitプラットフォームでは、実数の定数で指定できる桁数は 15桁程度なので、それ以上の桁数の Comp 型や Currency 型をリテラル定数で指定することはできません。

 32bitプラットフォームから64bitプラットフォームに移行する場合は注意が必要です。