喫茶XRAYトップページ
[
スレッド全体
]
[12445]
数値計算の誤差関係
返信
削除
2018/11/14 (水) 23:17:01
Mr.XRAY
[ 06_数値の四捨五入等と数値を文字列にする関数類 ]
に Trunc 関数関係のサンプルを追加しました.
[ 08_関数の引数が数値を使用した式の時に発生する現象 ]
http://
mrxray.
on.
coocan.
jp/
Delphi/
plSample
s/
890_Calc
Error.
htm#
08
2018/11/15
別項目にしました.
[12446]
Re:数値計算の誤差関係
返信
削除
2018/11/14 (水) 23:27:34
Mr.XRAY
> に Trunc 関数関係のサンプルを追加しました.
こんな例もあります.
動作確認は [890] のサンプルと同じで
Windows 7 U64(SP1) + Delhi XE(UP1) Pro です.
procedure TForm1.Button1Click(Sender: TObject);
var
LInteger : Integer;
begin
LInteger := Trunc(5 * 0.01 * 100);
Memo1.Lines.Clear;
Memo1.Lines.Add(IntToStr(LInteger));
end;
procedure TForm1.Button2Click(Sender: TObject);
var
LInteger : Integer;
LDouble : Double;
begin
LDouble := 5 * 0.01 * 100;
LInteger := Trunc(LDouble);
Memo1.Lines.Clear;
Memo1.Lines.Add(IntToStr(LInteger));
end;
[12448]
Re2:数値計算の誤差関係
返信
削除
2018/11/14 (水) 23:48:40
Mr.XRAY
> こんな例もあります.
このような現象は以下のようにすれば発生しません.
LInteger := Trunc(9.98 * 100);
↓
LInteger := Trunc(9.98 * 100.0);
LInteger := Trunc(5 * 0.01 * 100);
↓
LInteger := Trunc(5.0 * 0.01 * 100.0);
以上を以って数値計算の誤差に関する講義を終了とします.
えっ !? 何も説明していない ? う〜む.
[
▼次のスレッド
]
INCM/CMT
Cyclamen v3.82