Java има няколко усъвършенствани приложения за използване, включително работа със сложни изчисления по физика, архитектура / проектиране на структури, работа с Карти и съответните географски ширини / дълги и др.
В този урок ще научите:
- Math.abs
- Math.round
- Math.ceil & Math.floor
- Math.min
Всички такива приложения изискват използването на сложни изчисления / уравнения, които са досадни за ръчно изпълнение. Програмно такива изчисления ще включват използване на логаритми, тригонометрия, експоненциални уравнения и т.н.
Сега не можете да имате твърдо кодирани някъде във вашето приложение или данни всички таблици на дневника или тригонометрията. Данните ще бъдат огромни и сложни за поддържане.
Java предоставя много полезен клас за тази цел. Това е Math java клас (java.lang.Math).
Този клас предоставя методи за извършване на операции като експоненциални, логаритъм, корени и тригонометрични уравнения също.
Нека разгледаме методите, предоставени от класа Java Math.
Двата най-фундаментални елемента в математиката са „e“ (основа на естествения логаритъм) и „pi“ (съотношение на обиколката на кръг към неговия диаметър). Тези две константи често се изискват в горните изчисления / операции.
Следователно Java класът по математика предоставя тези две константи като двойни полета.
Math.E - със стойност 2.718281828459045
Math.PI - имащ стойност като 3.141592653589793
А) Нека да разгледаме таблицата по-долу, която ни показва основните методи и тяхното описание
Метод | Описание | Аргументи |
коремни мускули | Връща абсолютната стойност на аргумента | Double, float, int, long |
кръгъл | Връща затворения int или long (според аргумента) | двойно или плаващо |
таван | Връща най-малкото цяло число, което е по-голямо или равно на аргумента | Двойна |
етаж | Връща най-голямото цяло число, което е по-малко или равно на аргумента | Двойна |
мин | Връща най-малкия от двата аргумента | Double, float, int, long |
макс | Връща най-големия от двата аргумента | Double, float, int, long |
По-долу е дадено изпълнение на кода на горните методи:
Забележка: Няма нужда да импортирате изрично java.lang.Math като имплицитно импортиран. Всички негови методи са статични.
Целочислена променлива
int i1 = 27;int i2 = -45;
Двойни (десетични) променливи
double d1 = 84.6;double d2 = 0.45;
Math.abs
public class Guru99 {public static void main(String args[]) {int i1 = 27;int i2 = -45;double d1 = 84.6;double d2 = 0.45;System.out.println("Absolute value of i1: " + Math.abs(i1));System.out.println("Absolute value of i2: " + Math.abs(i2));System.out.println("Absolute value of d1: " + Math.abs(d1));System.out.println("Absolute value of d2: " + Math.abs(d2));}}Изход:
Absolute value of i1: 27Absolute value of i2: 45Absolute value of d1: 84.6Absolute value of d2: 0.45
Math.round
public class Guru99 {public static void main(String args[]) {double d1 = 84.6;double d2 = 0.45;System.out.println("Round off for d1: " + Math.round(d1));System.out.println("Round off for d2: " + Math.round(d2));}}Изход:
Round off for d1: 85Round off for d2: 0
Math.ceil & Math.floor
public class Guru99 {public static void main(String args[]) {double d1 = 84.6;double d2 = 0.45;System.out.println("Ceiling of '" + d1 + "' = " + Math.ceil(d1));System.out.println("Floor of '" + d1 + "' = " + Math.floor(d1));System.out.println("Ceiling of '" + d2 + "' = " + Math.ceil(d2));System.out.println("Floor of '" + d2 + "' = " + Math.floor(d2));}}Изход:
Ceiling of '84.6' = 85.0Floor of '84.6' = 84.0Ceiling of '0.45' = 1.0Floor of '0.45' = 0.0
Math.min
public class Guru99 {public static void main(String args[]) {int i1 = 27;int i2 = -45;double d1 = 84.6;double d2 = 0.45;System.out.println("Minimum out of '" + i1 + "' and '" + i2 + "' = " + Math.min(i1, i2));System.out.println("Maximum out of '" + i1 + "' and '" + i2 + "' = " + Math.max(i1, i2));System.out.println("Minimum out of '" + d1 + "' and '" + d2 + "' = " + Math.min(d1, d2));System.out.println("Maximum out of '" + d1 + "' and '" + d2 + "' = " + Math.max(d1, d2));}}Изход:
Minimum out of '27' and '-45' = -45Maximum out of '27' and '-45' = 27Minimum out of '84.6' and '0.45' = 0.45Maximum out of '84.6' and '0.45' = 84.6
Б) Нека да разгледаме таблицата по-долу, която ни показва експоненциалните и логаритмичните методи и тяхното описание-
Метод | Описание | Аргументи |
опит | Връща основата на естествения дневник (e) в степента на аргумента | Двойна |
Влезте | Връща естествения дневник на аргумента | двойно |
Пау | Взема 2 аргумента като вход и връща стойността на първия аргумент, повдигнат в степента на втория аргумент | Двойна |
етаж | Връща най-голямото цяло число, което е по-малко или равно на аргумента | Двойна |
Sqrt | Връща квадратния корен на аргумента | Двойна |
По-долу е кодовото изпълнение на горните методи: (Използват се същите променливи, както по-горе)
public class Guru99 {public static void main(String args[]) {double d1 = 84.6;double d2 = 0.45;System.out.println("exp(" + d2 + ") = " + Math.exp(d2));System.out.println("log(" + d2 + ") = " + Math.log(d2));System.out.println("pow(5, 3) = " + Math.pow(5.0, 3.0));System.out.println("sqrt(16) = " + Math.sqrt(16));}}Изход:
exp(0.45) = 1.568312185490169log(0.45) = -0.7985076962177716pow(5, 3) = 125.0sqrt(16) = 4.0
В) Нека да разгледаме таблицата по-долу, която ни показва тригонометричните методи и тяхното описание-
Метод | Описание | Аргументи |
Грях | Връща синуса на посочения аргумент | Двойна |
Кос | Връща косинуса на посочения аргумент | двойно |
Тен | Връща тангента на посочения аргумент | Двойна |
Атан2 | Преобразува правоъгълни координати (x, y) в полярни (r, theta) и връща theta | Двойна |
toDegrees | Преобразува аргументите в градуси | Двойна |
Sqrt | Връща квадратния корен на аргумента | Двойна |
на радийци | Преобразува аргументите в радиани | Двойна |
Аргументите по подразбиране са в радиани
По-долу е дадено изпълнение на кода:
public class Guru99 {public static void main(String args[]) {double angle_30 = 30.0;double radian_30 = Math.toRadians(angle_30);System.out.println("sin(30) = " + Math.sin(radian_30));System.out.println("cos(30) = " + Math.cos(radian_30));System.out.println("tan(30) = " + Math.tan(radian_30));System.out.println("Theta = " + Math.atan2(4, 2));}}Изход:
sin(30) = 0.49999999999999994cos(30) = 0.8660254037844387tan(30) = 0.5773502691896257Theta = 1.1071487177940904
Сега, с горното, можете също да проектирате свой собствен научен калкулатор в Java.