2014-01-29 3 views
0

Я использовал этот код для расчета скидок между продажной ценой и ППМ продуктов, извлекая их из базы данных. Формула скидки работает нормально, но когда дело доходит до расчета скидка менее 5%, она показывает 0% скидку на свое место. Я не могу понять это. Помогите оценить.формула скидки не рассчитать скидку менее чем за 5%

<?php 
$mainsql="SELECT ProductID, ProductName, Brand, MRP, SP 
FROM producttable 
WHERE ProductID='".$id."'"; 
$mainquery=mysql_query($mainsql); 
$main=mysql_fetch_row($mainquery); 

$mrp=number_format($main[3], 0, ' ', ','); 
$sp=number_format($main[4], 0, ' ', ','); 

$discount=(($mrp-$sp)/$mrp)*100; 

<h3>Discount: You save<span class=\"percentage_style\"> ".round($discount, 0)."</span>%</h3> 
?> 
+1

Просьба предоставить свалку данных. Я провел несколько тестов и не смог реплицировать – NiGhTHawK

+1

, вы можете предоставить некоторые значения MRP и SP, хранящиеся в БД. (без номера формата) –

+0

как для MRP - 6500 и SP - 6250 .. его показ 0% скидка, когда он фактически становится скидкой 3% – Abhi

ответ

0

Да то потому что вы делаете номер форматирования перед выполнением арифметической операции

Правильный путь должен быть -

$mrp = 6500 ; 
$sp = 6250 ; 

$dis = round((($mrp-$sp)/$mrp)*100) ; 
echo $dis ; 

Это будет 4%, так как без вокруг его вокруг +3,8461538461538

Как только вы выполните расчет, вы можете использовать формат номера для части дисплея.

+0

эй спасибо, спасибо, номер number.format тоже сделал трюк .. спасибо alot – Abhi

+0

Добро пожаловать! –

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