喫茶XRAYトップページ

[スレッド全体
]

[10206] 四捨五入について返信 削除
2016/7/21 (木) 18:32:16 Mr.XRAY
[四捨五入について]
https://forums.embarcadero.com/thread.jspa?threadID=227533&tstart=0

ホント ? やってみました.以下がテストコードです.
この程度のコードは提示した方がいいですね.
できれば,インデント付きで (笑)

動作確認は Windows 7 U64(SP1) + Delphi XE(UP1) Pro
                              + Delphi XE5(UP2) Por 32bit
                              + Delphi XE5(UP2) Por 64bit

結論
貴方の Delphi XE5 は壊れている

procedure TForm1.Button1Click(Sender: TObject);
var
  LValue : Double;
begin
  LValue := RoundAct(565.5);
  Memo1.Lines.Add(FloatToStr(LValue));
end;

procedure TForm1.Button2Click(Sender: TObject);
var
  LValue : Double;
begin
  LValue := RoundAct(565.50001);
  Memo1.Lines.Add(FloatToStr(LValue));
end;

//  質問者が提示したコードのコピペ

function TForm1.RoundAct(pATAI: Double): Integer;
begin
if pATAI >= 0 then begin
Result := Trunc(pATAI + 0.5);
end else begin
Result := Trunc(pATAI - 0.5);
end;
end;



[10212] Re:四捨五入について返信 削除
2016/7/22 (金) 16:48:02 Mr.XRAY
> [四捨五入について]
> https://forums.embarcadero.com/thread.jspa?threadID=227533&tstart=0

 
>計算式として、 2000-(2000x0.95x0.755)=565.5
>引数に565.5を渡しています。


ならないよん.

procedure TForm1.Button3Click(Sender: TObject);
var
  LValue : Integer;
begin
  LValue := RoundAct(2000 - (2000 * 0.95 * 0.755));
  Memo1.Lines.Add(IntToStr(LValue));
end;

全角 (漢字) の () は止めてね.X じゃなくて * がいいと思うよ.
って,全角の ( ) と x じゃ,Delphi が認識してくれないと思うのですが.


[10218] Re2:四捨五入について返信 削除
2016/7/22 (金) 20:45:34 Mr.XRAY
>あるいは、このとき、RoundActの最初のほうに、
>
>if pATAI = 565.5 then
>ShowMessage('pATAI は 565.5 です。');
>
>を入れて、値を確認してみるとか・・・・


なるほど,こういう確認方法という手がありましたか.
比較でもいいですね.


[▼次のスレッド]
INCM/CMT
Cyclamen v3.82