|
제생각엔 FormatFloat에서 원하시는 반올림값은 구하시가가 어려울것 같네요....
꽁수로서 szRealBuff문자값에서 직접 소수점자리을 구하여 강제적으로 반올림하시는 방법도 괜찮겠군요...
보리 님이 쓰신 글 :
: 안녕하세요..
:
: 정말 이상한 현상이 있어서 이렇게 질문드립니다.
: 혹시 이런 현상을 보신분이 계시며 답변 부탁드립니다.
:
: 소수점 자리가 포함된 숫자를 입력받아 포맷대로 출력되도록 하였습니다.
: -------------------------------------------------------------------
: ldSam = _atold(szRealBuff);
: szTemp = FormatFloat("###,###,##0.00", ldSam);
: -------------------------------------------------------------------
:
: 그런데 이상한 점이 .00 으로 되어있으면 소수점 3자리가 입력될시 반올림되어야
: 하는데 숫자 범위에 따라 반올림/절사 를 하는 점입니다.
:
: 다음처럼요..
:
: 입력숫자 FormatFloat 을 거친 szTemp 에 입력된 숫자.
: ----------------------------------------------------------------
: ~ 63.695 1.70
: ★64.695 ~ 114.695 1.69 ==> 반올림되어 1.70 이 나와야 정상.
: 115.695 ~ 1.70
:
:
: 원칙대로라면 모두다 1.70이 출력되어야 하는데 64.695 ~ 114.695 범위에서는 반올림을
: 하지 않고 절사를 해버립니다.
:
: 만약 돈계산이 들어간다면 엄청난 손실이 발생할 수도 있는 문제인데 말이죠...
:
: 혹시 아시는분 답변좀 해주시면 고맙겠습니다.
:
: BCB 3.0 버전이고, Win2000, WinXP 모두 같은 현상이 발생합니다...
:
: 그럼 ^^
|