i had a problem on my site with some % showing 10 decimal places instead of 2 like this 56.000000001% and it was because of part of the calculation was out side of the number function so if you change this in
includes/functions/functions_price.php
PHP Code:
if ($display_normal_price == 0) {
// don't show the $0.00
if(($display_msrp_price!='')&&($display_msrp_price!='0')){
$final_display_price = '<span class="smalltext1"><s>'.TEXT_PRODUCT_MSRP.$currencies->display_price($display_msrp_price, zen_get_tax_rate($product_check->fields['products_tax_class_id'])).'</s></span><br><span class="save">'.TEXT_PRODUCT_SAVE . number_format((($display_msrp_price - $display_normal_price) / $display_msrp_price), 2, '.', '') * 100 . '% '.'</span><br><span class="norm">'.TEXT_PRODUCT_OUR.$show_special_price . $show_sale_price . $show_sale_discount.'</span>' ;
}else{
$final_display_price = $show_special_price . $show_sale_price . $show_sale_discount;
}
} else {
if(($display_msrp_price!='')&&($display_msrp_price!='0')){
$final_display_price = '<span class="smalltext1"><s>'.TEXT_PRODUCT_MSRP.$currencies->display_price($display_msrp_price, zen_get_tax_rate($product_check->fields['products_tax_class_id'])).'</s></span><br><span class="save">'.TEXT_PRODUCT_SAVE . number_format((($display_msrp_price - $display_normal_price) / $display_msrp_price), 2, '.', '') * 100 . '% '.'</span><br><span class="norm">'.TEXT_PRODUCT_OUR.$show_normal_price . $show_special_price . $show_sale_price . $show_sale_discount.'</span>' ;
}else{
$final_display_price = $show_normal_price . $show_special_price . $show_sale_price . $show_sale_discount;
}
}
to this
PHP Code:
if ($display_normal_price == 0) {
// don't show the $0.00
if(($display_msrp_price!='')&&($display_msrp_price!='0')){
$final_display_price = '<span class="smalltext1"><s>'.TEXT_PRODUCT_MSRP.$currencies->display_price($display_msrp_price, zen_get_tax_rate($product_check->fields['products_tax_class_id'])).'</s></span><br><span class="save">'.TEXT_PRODUCT_SAVE . (((($display_msrp_price - $display_normal_price) / $display_msrp_price)* 100 ), 2, '.', '') . '% '.'</span><br><span class="norm">'.TEXT_PRODUCT_OUR.$show_special_price . $show_sale_price . $show_sale_discount.'</span>' ;
}else{
$final_display_price = $show_special_price . $show_sale_price . $show_sale_discount;
}
} else {
if(($display_msrp_price!='')&&($display_msrp_price!='0')){
$final_display_price = '<span class="smalltext1"><s>'.TEXT_PRODUCT_MSRP.$currencies->display_price($display_msrp_price, zen_get_tax_rate($product_check->fields['products_tax_class_id'])).'</s></span><br><span class="save">'.TEXT_PRODUCT_SAVE . (((($display_msrp_price - $display_normal_price) / $display_msrp_price)* 100 ), 2, '.', '') . '% '.'</span><br><span class="norm">'.TEXT_PRODUCT_OUR.$show_normal_price . $show_special_price . $show_sale_price . $show_sale_discount.'</span>' ;
}else{
$final_display_price = $show_normal_price . $show_special_price . $show_sale_price . $show_sale_discount;
}
}
what i changed was this line
PHP Code:
number_format((($display_msrp_price - $display_normal_price) / $display_msrp_price), 2, '.', '') * 100
to this
PHP Code:
number_format(((($display_msrp_price - $display_normal_price) / $display_msrp_price)* 100 ), 2, '.', '')
i hope this helps someone out there
Bookmarks