Matematikai függvények és konstansok
Matematikai függvények és konstansok a Java nyelven
A Math osztály tartalmaz egy sor matematikai függvények, gyakran nem szükségszerű megoldása különböző problémák.
Ahhoz, hogy a négyzetgyöke számát, használja a módszert sqrt.
double x = 4;
kettős y = Math.sqrt (x);
System.out.println (y); // nyomtatása száma 2.0.
Két módszer println sqrt, és van egy kis különbség. Módszer println Dei létezik a tárgy rendszer, ki, a második paraméter a - szám lehet akkor víz. (Emlékezzünk, hogy ki - egy tárgy a rendszerben meghatározott osztály és a pre-höz egy szabványos kimeneti eszközön.)
Ugyanakkor sqrt módszer a Math osztály nem működik semmilyen tárgyat. Ez egy x paraméter - a számot, ahonnan ki szeretné bontani a gyökér. Ezek a módszerek az úgynevezett statikus Ap-ég.
A Java, nincs hatványozást: meg kell használni a pow módszer a Math osztály.
operátor
kettős y = Math.pow (x, a);
hozzárendeli az értéket a X változó erejét a.
Mindkét pow módszer paraméter és visszaadott érték típusúak kettős.
A Math osztály tartalmazza a szokásos trigonometrikus függvények:
Math.sin
Math.cos
Math.tan
Math.atan
Math.atan2
Ezen túlmenően, ez magában foglalja az exponenciális és annak inverz logaritmikus-lic funkció (természetes logaritmus):
Math.exp
Math.log
Az osztály is meghatározza két állandók
Math.PI
Math.E,
jelző közelítése a pi szám és e.
Hogy javítsa annak teljesítményét funkciókat a Math osztály használatát pro-grammot beépített modul egy lebegőpontos számításokat.
Ha a számítás pontossága sokkal fontosabb, mint a sebességet azok végrehajtása, használja strictMath osztályban.
Hajtja végre az algoritmusok a könyvtárból „szabadon terjeszthető Math Library” ( „A szabad könyvtár matematikai függvények”) fdlibm, amely garantálja a személyazonosságát az eredmények minden platformon.
Átalakítása numerikus típusok
Sokszor van szükség konverzióra egy numerikus típusú a másikra.
Ábra. 3.1 ábra a megengedett átalakulás.
Hat fekete nyilak mutatják. 3.1 jelzik átalakulások, amelyek megfelelnek nyayutsya, veszteség nélkül az információ. Három szürke nyilak konverzió, amelynél a veszteség pontosság is előfordulhat. Például, a nagy számjegyek száma az integer 123456789 meghaladja a számjegyek száma lehet képviseli Leno-típusú úszó.
Száma alakítjuk lebegni, joga van a nagyság, jól, de valamivel kevésbé pontos.
int n = 123456789;
float f = n; // Az n szám értéke 1,23456789268.
Ábra. 3.1 Fix konvertáló numerikus típusok
Ha a két érték kombinálva egy bináris operátort (például N + F, ahol n - egy egész szám, egy f - egy lebegőpontos szám), mielőtt végrehajtaná a műveletet, mindkét operandus alakítjuk számokat az azonos típusú.
Ha legalább az egyik operandusa típusú dupla, a másik túl átalakulása számának csökkenése típusú kettős.
Ellenkező esetben, ha legalább az egyik operandusa lebegőpontos, ez utóbbi szintén átalakítható számos típusú úszó.
Ellenkező esetben, ha az egyik operandus hosszú, akkor a második is átalakíthatjuk a számát típusú hosszú.
Egyébként mindkét operandus alakítjuk int típusú számot.
Az előző részben láttuk, hogy ha szükséges, int értéket AV automatikus átalakul kettős értéket. Másrészt, sok nem nyilvánvaló esetekben, amikor a szám a double típus tartják egészére. Konvertálása számok a Java nyelven is lehetséges, de természetesen a veszteség információkat is előfordulhat. Ezeket az átalakításokat nevezzük típuskonverziója (cast).
Szintaktikailag típuskonverzió által meghatározott pár zárójelben, amelynek belsejében
meghatározza a kívánt típust, majd - a változó nevét. Például,
double x = 9997;
int nx = (int) x;
Most eredményeként vezetés egy lebegőpontos integer típusú újbóli Meline NX egyenlő 9, mert ebben az esetben a törtrész eldobjuk.
Ha azt szeretnénk, hogy kerek egy lebegőpontos szám, a legközelebbi egész (ami sok esetben sokkal hasznosabb), az eljárás
Math.round.
double x = 9,997;
int nx = (int) Math. kerek (x);
Most a változó NX 10. hívásakor kerek módszer még mindig el kell végezniük csökkentése, mert a visszatérési érték típusú hosszú, és rendeljen hozzá egy egész típusú változó csak útján kifejezett öntött.
Ha megpróbálja, hogy a számos egyik típusról a másikra eredményt túlmutatnak az előre Dela tartományban. Ebben az esetben az eredmény lesz csonka.
Például, ha-kifejezések (byte) 300 egyenlő 44. Ezért ajánlatos kifejezetten ellenőrizze előre, hogy az eredmény bu-gyerek feküdjön a megengedett tartományon belül, miután a leadott.
Öntött a logikai és integer típusú nem lehetséges. Ez megelőzi a hibákat. Ritka esetekben, annak érdekében, hogy a logikai értékek, a numerikus típus, akkor a feltételes kifejezés
b. 1. 0.