Autor Zpráva
houbeless
Profil
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
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
:)) 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
co ti brání v zápisu
$vysledek = ($vysledek < 0) ? 0 : $vysledek;
Joker
Profil
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
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
Nejspíš neexistuje, ale nic ti nebrání napsat si ji, pokud opravdu potřebuješ fci a ne podmínku.
Chamurappi
Profil
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
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
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
Uplne stejny vysledek bude mit pouziti funkce abs().

$a = 5;
$vysledek = abs($a - 25);
houbeless
Profil
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
To Ssob
To určitě ne.
Ssob
Profil
houbeless
To určitě ne.
Co na to napsat.. :)
Alphard
Profil
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
Alphard
houbeless
Jj, uz si to uvedomuju. Moje chyba. Asi jsem prepracovany.. :)

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: