반올림하기 위해서 round함수를 썼는데
반올림되는게 넘 이상해서 이렇게 글을올립니다.
지금 현재 델파이4.0을 쓰고 패치 3까지 다 시켰음니다.
그런데, round함수를 써서 반올림하여 정수값을 받는데
반올림되는 결과값이 아래와 같이 나옵니다.
68.5 === 68 반올림안됨
68.51 === 69 소숫점 2자리잇으면 반올림 됨
69.5 === 70 여기선 반올림됨
69.51 === 70 여기서두 반올림됨
이런 식의 결과가 나옴니다..
그러니까 앞에 정수가 짝수일경우에 문제가 생기네요...
그리고 소숫점2자리 이상이 잇을때는 아무 이상이 없어요..
휴~~ 정말 넘 이상해여..
아시는 고수분들 답변해주시면 감사...
begin
Result := Trunc(X) + Trunc(Frac(X) * 2);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Edit1.Text := IntToStr(RoundUp(3.4));
end;
요런식으로 해보세요
Round의 버그는 아니고 어떤 계산방식에 의해서 그런다고 하는데
그건 잘 모르겠고