掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
バージョンでTrunc結果が異なる (ID:49597)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
> Trunc( 5 * 0.01 * 100 ) = 4 テストしてみました. 残念ですが, 質問された方の書き込みの内容については,私の理解が及ぶ範囲ではありません. 単に計算のテストをしただけです.ご了承ください. 動作確認は Windows 7 U64(SP1) + Delphi XE5(UP2) Pro VCL-32 です. [テストプロジェクトのダウンロード] (EXE 付き) http://mrxray.on.coocan.jp/Delphi/zip/QandA_18110003_Trunc.zip procedure TForm1.Button1Click(Sender: TObject); var LInteger : Integer; LIntegerB : Integer; LDouble : Double; begin Memo1.Lines.Clear; // 掲示板で書き込みがあった計算式のまま // この結果は 4.この計算以外の結果は全て 5 LInteger := Trunc(5 * 0.01 * 100); Memo1.Lines.Add(IntToStr(LInteger)); // 数値を明示的に実数型とする場合 LInteger := Trunc(5.0 * 0.01 * 100.0); Memo1.Lines.Add(IntToStr(LInteger)); // 数値を大きい値順に計算する場合 LInteger := Trunc(100 * 5 * 0.01); Memo1.Lines.Add(IntToStr(LInteger)); // 計算結果の値を実数型の変数に代入してからTrunc関数の引数とする場合 LDouble := 5 * 0.01 * 100; LInteger := Trunc(LDouble); Memo1.Lines.Add(IntToStr(LInteger)); // 各々の数値をそれぞれの型の変数に代入してからTrunc関数の引数とする場合 LInteger := 5; LIntegerB := 100; LDouble := 0.01; LInteger := Trunc(LInteger * LDouble * LIntegerB); Memo1.Lines.Add(IntToStr(LInteger)); end;
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.