[ Milan M. Radovic @ 15.08.2012. 15:24 ] @
Da li je neko vec radio funkciju pretvaranja cene u psiholosku cenu, recimo:

197.56 = 199.00
124.00 = 129.00
1223.79 = 1299.00
22200.50 = 22499.00

ali i da 1301.70 = 1309.00 ili 1299.00 ..

Imam neku ideju u glavi, ali da pitam ovde, mozda postoji elegantnije resenje :/ ?

[ vmosnak @ 16.08.2012. 01:13 ] @
interesantan zadatak,
nesto na brzinu... sry. na prilicno nejasno napisanom kodu, zurio sam
Code:

<?php
$num = $_GET['num'];
echo $num . '~';

$num = intval($num);
$digNum = strlen($num);
$dlm = pow(10, $digNum-2);
$cfg = 0;
$end = substr($num, -1);
if($dlm > 1000){
    $cfg = $dlm / 2;
}
if($num == $dlm * 10){
    $num = $num - 1;
}
else if($end < $dlm/10){
    $num = intval($num - $dlm/100 -1);
    $len = strlen($num);
    $num = substr_replace($num, '99', $len-2, $len);
}
else {
    if($rem = $num % $dlm){
        $num += $dlm - $rem -1 - $cfg;
    }
}
echo $num;
?>
[ Milan M. Radovic @ 16.08.2012. 07:52 ] @
Pa da, interesantno, nigde na netu nema... ni na stranim sajtovima cija je tematika PHP.
Vel'ko fala!

Uspeo sam ovako da resim problem, mada nije skroz skroz ono sto sam mislio... ali radi :)
Code:
function makePsychologicalPrice($price)
{
    $psy_price = floor($price); // Zaokruzujemo na ceo broj.
    if($psy_price % 10 > 1)
    {
        $psy_price = round($psy_price,-2);
        $psy_price+=99;
    }
    elseif($psy_price % 10 == 0 and isDecimal($price)) 
        $psy_price+=9;
    
    return $psy_price;
}


[Ovu poruku je menjao Milan M. Radovic dana 16.08.2012. u 09:28 GMT+1]

[Ovu poruku je menjao Milan M. Radovic dana 16.08.2012. u 09:40 GMT+1]
[ vatri @ 21.08.2012. 23:19 ] @
Ako upisemo 8 , funkcija vrati 99
[ Milan M. Radovic @ 10.09.2012. 21:35 ] @
Znam, ali realno nista nece kostati 8 dinara :D a i nema veze... bolje je uvek vece ;)