12. září 2008

Jak jednoduše převést jakékoli reálné číslo na celé, které bude ležet v povoleném intervalu hodnot

Pokud ve Flash animaci potřebujete ošetřit vstup číslené hodnoty tak, abyste měli k dispozici číslo, které bude vždy celé a bude spadat do souvislého intervalu ostře omezeného hodnotami "n1" a "n2" (tzn. že tyto vymezující hodnoty patří do množiny povolených čísel), nemusíte v Action Scriptu psát žádnou složitou testovací proceduru.

Vystačíte si s jedním řádkem kódu, který jakékoli reálné číslo "x" převede na číslo celé "n" a pokud je toto zaokrouhlené číslo vně intervalu "n1" až "n2", přiřadí mu nejbližší krajní hodnotu:

n = Math.min(Math.max(n1, Math.floor(x)), n2);

Místo Math.floor(x) můžete samosebou použít Math.ceil(x) nebo Math.round(x), podle toho, jaký druh systematické chyby na vstupu předpokládáte.

Navíc zápis Math.min(Math.max(n1, n), n2); má sám o sobě elegantní tvar, který se nejen dobře pamatuje a zapisuje, ale má i jasnou vypovídací hodnotu.

Žádné komentáře:

Okomentovat

Chovejte se zde, prosím, jako v místnosti plné lidí, na kterých Vám záleží. Děkuji :o)