A nagy összegű árak hibásan jelennek meg a webáruházban
A nagy összegű árak hibásan jelennek meg a webáruházban
Bizonyos nagy számok esetén hibásan mutatja az árat a webshop.
Nálam az 1.840.000Ft nettó árhoz tartozó kijelzett ár: 2Ft
(volt...
Nem meglepő, hogy ez nem csak nálam fordult elő, az OsCommerce oldalán ott van a javítás, de itt is publikálom, hátha valakinek pont erre van szüksége.
Az includes/functions/general.php-ban ezt keresd meg:
function tep_round($number, $precision) { if (strpos($number, '.') && (strlen(substr($number, strpos($number, '.')+1)) > $precision)) { $number = substr($number, 0, strpos($number, '.') + 1 + $precision + 1); if (substr($number, -1) >= 5) { if ($precision > 1) { $number = substr($number, 0, -1) + ('0.' . str_repeat(0, $precision-1) . '1'); } elseif ($precision == 1) { $number = substr($number, 0, -1) + 0.1; } else { $number = substr($number, 0, -1) + 1; } } else { $number = substr($number, 0, -1); } } return $number; }
És ezt kell a helyére másolni:
function tep_round($number, $precision) { // if there's a decimal part to the number: if(floor($number) != $number) { // We're going to move the decimal point right by $precision digits, $multBy = pow(10, $precision); $number *= $multBy; // get the last digit, which we may need to round up $lastDigit = $number % 10; // if the digit we use to round the number is greater than 5 // then replace the last digit w/ (last digit + 1) $roundingDigit = ($number * 10) % 10; if($roundingDigit >= 5) { $number = floor($number / 10)*10 + ($lastDigit+1); } else { // truncate anything after the decimal place $number = floor($number); } // then move the decimal place left by $precision digits $number = $number / $multBy; } return $number; }
Módosítás: ( 2009. szeptember 26. szombat, 11:49 )


