FireBird Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
파이어버드 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
IBPhoenix
FireBird Main site
볼랜드포럼 광고 모집

FireBird Q&A
[2228] Re:[질문] 파이어버드가 계산을 이상하게 합니다.
civilian,안영제 [civilian] 1512 읽음    2006-11-13 15:24
편법입니다만, 트리거를

AS
  declare variable AQty Decimal(12,3);
  declare variable AUnit Decimal(12,3);
  declare variable AAmount Decimal(12,3);
begin
  AQty  = New.qty;
  AUnit = New.Unit_price;
  AAmount = AQty * AUnit;

  New.amount= AAmount;
end

이렇게 고쳐서 써보세요.
원인은 잘 모르겠습니다만, 이렇게 고쳐서 쓰니 잘 되는군요.


초보자 님이 쓰신 글 :
: 이런 필드가  있습니다.
:
: Qty [Double Precision]
: Unit_Price [Double Precision]
: Amount [Double Precision]
:
: Before Insert/Before Update 의 트리거에서
:
: new.amount = new.qty * new.unit_price;
:
: 이렇게 넣어줬습니다.
:
: 업체에서 계산이 맞지 않는다는 연락을 받고 확인해봤는데...
: 파이어버드가 계산을 이상하게 하더군요.
:
: 다음은 파이어버드가 계산한 값입니다.
:
: qty            unit_price   amount
: --------  ---------- --------------
: 10,327.56           4,700     48,539,529.98
:
: 윈도의 계산기와 델파이에서의 계산 결과는 48,539,532 로 나오는데요
:
: 파이어버드와 계산 값이 무려 2원 정도 차이가 납니다.
: 이걸 어떻게 해야할지 막막하네요.
:
: 이 글을 보시는 분들도 저런 필드를 만들고 값을 넣어서 테스트 해보시면
: 아마 황당한 결과를 보실겁니다.
:
: 좀 도와주세요. 흑흑...
:
: 앗, 참고로 파이어버드 버젼은 2.0 rc5로 최신의 상태입니다.

+ -

관련 글 리스트
2225 [질문] 파이어버드가 계산을 이상하게 합니다. 초보자 1612 2006/11/13
2228     Re:[질문] 파이어버드가 계산을 이상하게 합니다. civilian,안영제 1512 2006/11/13
2229         Re:Re:[질문] 파이어버드가 계산을 이상하게 합니다. 초보자 1484 2006/11/13
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.