2011-02-05 11 views
0

이 수식에서 우선 순위가 올바르지 않습니다.계산이 올바르지 않음

내가 원하는 일은 할인없이 부분 부분을 계산하는 것입니다. 누군가 내 실수를 저에게 할 수 있습니까? ,

((`p`.`tax_state` + `p`.`tax_fed`)/100) * 
    ((`p`.`price` * `op`.`quantity`) - 
     ((`p`.`price` * `op`.`quantity`) * `op`.`discount`)) 
+0

세금없이 부분합을 계산하려면 수식에 "tax_state"및 "tax_fed"라는 단어가 포함되는 이유는 무엇입니까? – jmort253

+0

나는 세금과 할인을 포함시키고 싶었고, 정확한 합계가 있는지 확인하기 위해 세금과 할인을 되돌리고 싶었습니다. – Jim

+0

'할인'은 숫자 ('25')에 저장되어 있습니까? 또는 분수 ('.75'). –

답변

0

는 세율이 백분율로 저장되어있는 점을 감안,하지만 할인 분수로 저장됩니다 (일관성을 위해 너무 많이!), 그리고 역 따옴표가 정말 필요하지 않습니다 가독성을 위해 매우 바람직하지 않은 것을 지적 다음 ...

(p.price * op.quantity) AS gross_price_exc_tax, 
(p.price * op.quantity) * (1 + (p.tax_state + p.tax_fed)/100) 
         AS gross_price_inc_tax, 
(p.price * op.quantity) * (1 + (p.tax_state + p.tax_fed)/100) * 
     (1 - op.discount) AS net_price_inc_tax, 
... 

이들은 당신이 쓴 것과 매우 유사하다, 그래서 당신은 당신이, 당신이 결과로 얻고 무엇을 입력 데이터로 가지고 있고, 무엇을 설명 할 필요가 당신은 당신이 예상하는지 설명 할 수 있어야한다 네가 가진 것과는 대조적이다. 부동 소수점 값이 될 것으로 예상 할 때 MySQL이 표현식의 일부를 정수로 취급 할 위험이 있습니까?

내가했던 것처럼해야하고, 한 번에 한 세트 씩 표현을 쌓아서 매번 결과를 분석해야합니다. 이렇게하면 문제를 빨리 찾을 수 있습니다. 예를 들어, 내가 추가 할 수

(1 + (p.tax_state + p.tax_fed)/100) AS tax_multiplier 

을 즉, (1) 대신에 1.125 또는 올바른 부분이 무엇이든, 그때 그 표현을 검토 알고있는 것으로 나타났다 아마 두 상수에 소수점을 추가합니다.

관련 문제