Autor | Zpráva | ||
---|---|---|---|
frauen Profil * |
#1 · Zasláno: 26. 10. 2010, 15:56:08
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, ',', ''); |
||
Keeehi Profil |
#2 · Zasláno: 26. 10. 2010, 15:58:05 · Upravil/a: Keeehi
round(); |
||
panther Profil |
#3 · Zasláno: 26. 10. 2010, 15:58:18
frauen:
round() |
||
frauen Profil * |
#4 · Zasláno: 26. 10. 2010, 16:15:48
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 |
#5 · Zasláno: 26. 10. 2010, 16:32:10 · Upravil/a: Keeehi
$cena_dph = round($cena_dph, 1)."0"; |
||
Radek9 Profil |
#6 · Zasláno: 26. 10. 2010, 16:32:58 · Upravil/a: Radek9
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, ",", ""); |
||
panther Profil |
#7 · Zasláno: 26. 10. 2010, 16:37:11
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 * |
#8 · Zasláno: 26. 10. 2010, 16:52:38
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 |
#9 · Zasláno: 26. 10. 2010, 16:57:27
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 |
#10 · Zasláno: 26. 10. 2010, 17:00:15
frauen:
number_format(round($cena, 1), 2, ',', ' '); |
||
Radek9 Profil |
#11 · Zasláno: 26. 10. 2010, 17:03:33
SwimX:
Já se bojím, že právě takhle to nechce. |
||
SwimX Profil |
#12 · Zasláno: 26. 10. 2010, 17:04:50
Radek9:
a proč by ne? <5 dolů, >4 nahoru. zaokrouhlení na 1 desetinné místo s výpisem na dvě. ? |
||
Radek9 Profil |
#13 · Zasláno: 26. 10. 2010, 17:06:53 · Upravil/a: Radek9
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 |
#14 · Zasláno: 26. 10. 2010, 17:12:24
toto by mělo být ono:
$cena_dph = sprintf('%.2f', ceil($cena_dph*10)/10) |
||
SwimX Profil |
#15 · Zasláno: 26. 10. 2010, 17:15:17
|
||
frauen Profil * |
#16 · Zasláno: 26. 10. 2010, 17:34:51
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 |
#17 · Zasláno: 26. 10. 2010, 17:39:01 · Upravil/a: panther
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 |
#18 · Zasláno: 26. 10. 2010, 18:09:26
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.
|
||
Časová prodleva: 14 let
|
0