2011-02-03 2 views
0

Мне нужно рассчитать налог и скидку. Вот формула, которую я использую, но запрос возвращает короткий.Почему эти данные не совпадают?

((8.75+0)/100)*(50.00*1 - (50*1*.1/100)) as test, 

MySQL retuens 4,370625 и когда я делаю математику (0,0875 * 50 - 0,05) на калькуляторе, я получаю: 3,875

Где я буду неправильно?


Давайте это реальный пример

A single item for sale: 
Quantity: 1.00 
Price: $20.00 
Tax: 8.75% 
Discount: 10% 

The tax should equal: $1.58 
The subtotal without tax is $18.00 
Total: $19.58 (after the discount and tax added) 

Как написать запрос, чтобы получить налог и отдельный расчет получить скидку?

ответ

2

его 4.370625. Вы делаете свою математику неправильно

4

Вы должны сделать 0.0875 * (50 - 0.05). Первое различие, затем умножение.

((8.75+0)/100)*(50.00*1 - (50*1*.1/100)) 

(8.75 /100)*(50  - 0.05  ) 

    0.0875  *(50  - 0.05  ) 

    0.0875  * 49.95 

    4.370625 

реальной жизни пример (если все числа, как здесь):

A single item for sale: 
Quantity: 1.00 
Price: $20.00 
Tax: 8.75% 
Discount: 10% 


"Total Tax" = Quantity * (Price * (1. - (Discount/100.)) * (Tax/100.) 
"Subtotal without tax" = Quantity * (Price * (1. - (Discount/100.)) 
"Total" = Quantity * (Price * (1. - Discount/100.) * (1. + Tax/100.)) 
+0

eumiro, спасибо, сейчас я сделаю снимок. – Jim

+0

eumiro, я полностью сосать, чтобы понять формулу для этого и, честно говоря, я слишком долго. Не могли бы вы помочь мне собрать столбцы, которые рассчитывают налог и скидку? – Jim

+0

@Jim - Я только что взял вашу формулу из MySQL и попытался ее упростить шаг за шагом. – eumiro

2

Ваша формула вычисляет (0,0875 * (50-0.05))

3,875 является 0,0875 * 50-0.5 (неправильные скобки и 0,5 вместо 0,05)

0

Вы делаете математику неправильно, это не (0,0875 * 50 - 0,05), но (0,0875 * (50 - 0,05)) = 4,370625

0

У вас есть приоритет оператора справа? Это то, что происходит: (? Почему вы множительной один)

((8.75+0)/100)*(50.00*1 - (50*1*.1/100)) 

, который вычисляется как

((8.75+0)/100)*((50.00*1) - (50*1*.1/100)) 

который несколько подозреваемый вы имели в виду это?

((8.75+0)/100)*(50.00*(1 - (50*1*.1/100))) 
+0

Писквор, я понятия не имею. Я даже не могу думать об этом. – Jim

+0

Я пытаюсь рассчитать налог и скидка за каждый элемент. Я могу сделать это без заминки на калькуляторе, но писать SQL оказалось более чем головной болью и кошмаром, если не сказать больше. Ничто не добавляет – Jim

+0

Я умножился на один, чтобы проверить запрос. – Jim

Смежные вопросы