[実数を整数化する]

実数を整数に変換するにはint,Trunc,Floor,Ceil関数を使用します

・intとTruncは小数点以下を切り捨てます。異なるのは、戻り値がintは実数、Truncは整数になることです。
・Floorはその実数を超えない最大の整数を求めます。
・Ceilはその実数より小さくない最小の整数を求めます。


実数を整数に変換して表示します。
【ソースコード】 [tips0031.pas]
<program tips0031;
{$APPTYPE CONSOLE}
uses SysUtils,Math;

begin
 WriteLn('◆小数点以下を切り捨て。戻り値は実数');
 WriteLn('int(1.5)  =',FloatToStr(int(1.5)));
 WriteLn('int(0.1)  =',FloatToStr(int(0.1)));
 WriteLn('int(0.0)  =',FloatToStr(int(0.0)));
 WriteLn('int(-0.1) =',FloatToStr(int(-0.1)));
 WriteLn('int(-1.5) =',FloatToStr(int(-1.5)));

 WriteLn('◆小数点以下を切り捨て。戻り値は整数');
 WriteLn('Trunc(1.5) =',Trunc(1.5));
 WriteLn('Trunc(0.1) =',Trunc(0.1));
 WriteLn('Trunc(0.0) =',Trunc(0.0));
 WriteLn('Trunc(-0.1) =',Trunc(-0.1));
 WriteLn('Trunc(-1.5) =',Trunc(-1.5));

 WriteLn('◆その実数を超えない最大の整数');
 WriteLn('Floor(1.5) =',Floor(1.5));
 WriteLn('Floor(0.1) =',Floor(0.1));
 WriteLn('Floor(0.0) =',Floor(0.0));
 WriteLn('Floor(-0.1) =',Floor(-0.1));
 WriteLn('Floor(-1.5) =',Floor(-1.5));

 WriteLn('◆その実数より小さくない最小の整数');
 WriteLn('Ceil(1.5) =',Ceil(1.5));
 WriteLn('Ceil(0.1) =',Ceil(0.1));
 WriteLn('Ceil(0.0) =',Ceil(0.0));
 WriteLn('Ceil(-0.1) =',Ceil(-0.1));
 WriteLn('Ceil(-1.5) =',Ceil(-1.5));

end.
【コンパイル&実行】 [tips0031.bat]
dcc32 tips0031.pas 
tips0031.exe  > tips0031.txt
pause
【実行結果】 [tips0031.txt]
◆小数点以下を切り捨て。戻り値は実数
int(1.5)  =1
int(0.1)  =0
int(0.0)  =0
int(-0.1) =0
int(-1.5) =-1
◆小数点以下を切り捨て。戻り値は整数
Trunc(1.5) =1
Trunc(0.1) =0
Trunc(0.0) =0
Trunc(-0.1) =0
Trunc(-1.5) =-1
◆その実数を超えない最大の整数
Floor(1.5) =1
Floor(0.1) =0
Floor(0.0) =0
Floor(-0.1) =-1
Floor(-1.5) =-2
◆その実数より小さくない最小の整数
Ceil(1.5) =2
Ceil(0.1) =1
Ceil(0.0) =0
Ceil(-0.1) =0
Ceil(-1.5) =-1