Autor | Zpráva | ||
---|---|---|---|
houbeless Profil |
#1 · Zasláno: 15. 7. 2008, 16:39:53
Zdravim,
prosim vás, hledám funkci fce (je-li taková), která by uměla ošetřit, že výsledek nesmí být menší než nula. Př.: $a = 2; $výsledek = fce($a - 5); // $výsledek = 0; Díky za radu. |
||
Joker Profil |
#2 · Zasláno: 15. 7. 2008, 16:45:13
houbeless
U vás se na základce ve druhé třídě nebraly operátory "menší než" a "větší než"? ;-) Jestli ano, tak stejné jsou i v programovacích jazycích: $a = 2; $mensi_nez_nula = ($a - 5) < 0; //$mensi_nez_nula obsahuje true, pokud $a<0, jinak false. V tom to případě tedy true. |
||
houbeless Profil |
#3 · Zasláno: 15. 7. 2008, 16:57:46
:)) Operátory jsme se učili, zato vy jste se asi neučili číst, že ;)
Neptal jsem se na způsob zápisu, kde dostanu true/false ..tj. podmínku (tu si umim napsat taky), ptal jsem se jestli existuje funkce, která zajišťuje, že výsledek se nedostane do záporných hodnot.(něco na způsob zaokrouhlování (ceil, floor...)) Myslel jsem, že z příkladu je to zřejmé...tj, pokud je číslo menší než 0 v proměnné $výsledek je 0 jako číselná hodnota, ne logická! Pokud výsledkem je hodnota kladná, tak ve $výsledek bude například 28... |
||
Alphard Profil |
#4 · Zasláno: 15. 7. 2008, 17:01:54
co ti brání v zápisu
$vysledek = ($vysledek < 0) ? 0 : $vysledek; |
||
Joker Profil |
#5 · Zasláno: 15. 7. 2008, 17:02:44
houbeless
ptal jsem se jestli existuje funkce, která zajišťuje, že výsledek se nedostane do záporných hodnot. Jistě, v závislosti na požadovaném výsledku jich existuje víc. Například absolutní hodnota, druhá mocnina, respektive každá sudá mocnina,... :)) Operátory jsme se učili, zato vy jste se asi neučili číst, že ;) No a logicky uvažovat jste se taky učili? if(($a-5) > 0) $vysledek = $a; else $vysledek = 0; respektive: $vysledek = (($a-5)>0) ? $a : 0; |
||
houbeless Profil |
#6 · Zasláno: 15. 7. 2008, 17:33:07
Ano mohl bych (nebo spíše budu muset) to zapsat podmínkou:
$a = 4; $vysledek = (($vysledek = $a - 5) < 0) ? 0 : $vysledek; // 0 díky, ale ptal jsem se jestli existuje funkce, která toto supluje, ale zdá se, že ne. |
||
DJ Miky Profil |
#7 · Zasláno: 15. 7. 2008, 19:28:21
Nejspíš neexistuje, ale nic ti nebrání napsat si ji, pokud opravdu potřebuješ fci a ne podmínku.
|
||
Chamurappi Profil |
#8 · Zasláno: 15. 7. 2008, 21:11:08
Reaguji na houbeless:
PHP neznám, ale vím, že v některých jiných jazycích existuje funkce „max“. A hle, ona existuje i v PHP. Takže asi $vysledek = max($vysledek, 0). |
||
houbeless Profil |
#9 · Zasláno: 15. 7. 2008, 23:35:44
Dobrá rada, ale tahle funkce bohužel neni to co jsem hledal..
tato vrátí pouze nejvyšší číslo z pole hodnot, ne z mat. funkce. Mě jde o něco, co v podstatě zaokrouhluje do kladných hodnot.. Řešení od Alpharda je asi nejlepší. Jinak fci si samozřejmě napsat mohu, ale chtěl jsem vědět jestli něco takového není už v PHP vytvořeno. |
||
Timy Profil |
#10 · Zasláno: 15. 7. 2008, 23:40:00
houbeless
„tato vrátí pouze nejvyšší číslo z pole hodnot, ne z mat. funkce.“ Argument nemusí být pole: $vysledek = -5; $vysledek = max($vysledek, 0); echo $vysledek; … vrátí nulu. |
||
Ssob Profil |
#11 · Zasláno: 15. 7. 2008, 23:58:16
Uplne stejny vysledek bude mit pouziti funkce abs().
$a = 5; $vysledek = abs($a - 25); |
||
houbeless Profil |
#12 · Zasláno: 16. 7. 2008, 00:07:48
Jo jasný, vidim to, v manuálu to nebylo patrné...
$vysledek = 4; $vysledek = max($vysledek-5, 0); echo $vysledek; Na toto jsem se ptal, díky moc. |
||
houbeless Profil |
#13 · Zasláno: 16. 7. 2008, 00:13:07
To Ssob
To určitě ne. |
||
Ssob Profil |
#14 · Zasláno: 16. 7. 2008, 00:17:34
houbeless
To určitě ne. Co na to napsat.. :) |
||
Alphard Profil |
#15 · Zasláno: 16. 7. 2008, 00:22:03
Ssob
Co na to napsat.. :) aby jsi to zkusil, absolutní hodnota bude skutečně vracet jiné výsledky, než autor dotazu požaduje :-) houbeless funkce max() je asi to, co hledáš, prve mě to nenapadlo, ne každý den mám tvůrčí nápady :-) podmínka je alternativa PS: už to neřešte, od 9. příspěvku zde nevidím nic objevného a asi se nedá ani očekávat |
||
Ssob Profil |
#16 · Zasláno: 16. 7. 2008, 00:31:28
Alphard
houbeless Jj, uz si to uvedomuju. Moje chyba. Asi jsem prepracovany.. :) |
||
Časová prodleva: 16 let
|
0