Autor Zpráva
frauen
Profil *
Zdravím,

dostal jsem se k danému problému. Potřeboval bych zaokrouhlit cenu např. když budu mít 260,04 tak na 260,10 - tzn. na desetníky. Poradíte mi jak na to? Předem díky.

Dosavadní kód:
$cena_dph = $cena * 1.2;
$cena_dph = number_format($cena_dph, 2, ',', '');
kde $cena je hodnota bez DPH.
Keeehi
Profil
round();
panther
Profil
frauen:
round()
frauen
Profil *
A přesnější použití?

Zkoušel jsem:
$cena_dph = round($cena_dph, 1);(

Dostanu sice hodnotu zaokrouhlenou, ale potřeboval bych, aby desetinná hodnota byla vždy dvoumístná. Tedy stejně jako v MySQL funkce ZEROFILL. Nebo je nějaká jiná možnost? Mimochodem number_format() a round() plní v tomto případě stejnou úlohu že? number_format() však rovnou umožňuje přepis des. tečky na čárku. Nebo to tak není?
Keeehi
Profil

$cena_dph = round($cena_dph, 1)."0";
Radek9
Profil
Keeehi:
Řekl bych, že frauen to chce zaokrouhlit na desetiny, ale vždy nahoru. Tzn. třeba z 1,04 udělat 1,1.

Edit: Možná je to prasárna, ale co tohle?
$cena_dph = $cena*1.2;
$cena_dph = ceil($cena_dph*10)/10;
$cena_dph = number_format($cena_dph, 2, ",", "");
Edit2: Opraveno.
panther
Profil
Keeehi:
nebude fungovat, pokud v proměnné bude celé číslo, nebo by zaokrouhlení vedlo k 0 na první desetinném řádu.

Např. echo round(1.04, 1)."0"; vypíše 10 místo 1,00 či 1.
frauen
Profil *
Chtěl bych to zaokrouhlovat klasicky - menší než 5 dolů a větší než 4 nahoru. Nevidím ani tak problém v tom zaokrouhlování jako spíš v tom doplnění nuly. Zaokrouhlení na 1 desetinné místo a doplnění nuly - to je řešení. Ale jak zpracovat to doplnění nuly, netuším.
Radek9
Profil
frauen:
To moje řešení ti to zakrouhlí na desetníky (např. 1,04 -> 1,1 nebo 1,56 -> 1,6), ale z tvého nynějšího popisu jsem zase nesvůj. Mohl bys sem napsat nějaké příklady, co by to mělo z čeho udělat?
SwimX
Profil
frauen:
number_format(round($cena, 1), 2, ',', ' ');
Radek9
Profil
SwimX:
Já se bojím, že právě takhle to nechce.
SwimX
Profil
Radek9:
a proč by ne? <5 dolů, >4 nahoru. zaokrouhlení na 1 desetinné místo s výpisem na dvě. ?
Radek9
Profil
SwimX:
Vlastně ano, ale z popisu v [#1], kde bylo „když budu mít 260,04 tak na 260,10“, jsem pochopil, že to chce nahoru na jedno desetiné místo (tedy na ty desetníky) a pak pomocí number_format() případně dopsat tu nulu.
AM_
Profil
toto by mělo být ono:
$cena_dph = sprintf('%.2f', ceil($cena_dph*10)/10)
SwimX
Profil
AM:
přijde na to :-)

[#8] frauen:
Chtěl bych to zaokrouhlovat klasicky

Ale může si vybrat :-)
frauen
Profil *
Díky všem za rady, teď už mám řešení. Chtěl bych se jen osobně zeptat, jaká varianta je praktičtější? Jestli zaokrouhlovat vždy nahoru nebo podle pravidel - menší než 5 dolů, větší než 4 nahoru?
panther
Profil
frauen:
Chtěl bych se jen osobně zeptat, jaká varianta je praktičtější?
myslím si, že je to celkem jedno. Málokdo bude počítat, jaká je přesná hodnota té ceny s DPH a řešit, zda jsi ho „okradl“ o peníze v řádu jednotek haléřů. Ke všemu, když nakonec vše zaokrouhlíš na koruny :-).

Nebo ty snad, když vidíš v obchodě cenu „17,30Kč“ řešíš, jestli to má přesně vycházet na „17,21Kč“ (zaokrouhlení nahoru) nebo „17,34Kč“ (normální zaokrouhlení)? Já tedy ne. Jednak to nic není, druhak s tím stejně nic neudělám.
AM_
Profil
zaokrouhloval bych spíše nahoru, jak píše panther zákazníka to moc trápit nebude, ale pokud prodáváš velké množství zboží, na kterém máš malý zisk, může to pro tebe být znatelný rozdíl.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0