Java đã có một số ứng dụng sử dụng nâng cao bao gồm làm việc với các tính toán phức tạp trong vật lý, kiến trúc / thiết kế công trình, làm việc với Bản đồ và các vĩ độ / kinh độ tương ứng, v.v.
Trong hướng dẫn này, bạn sẽ học:
- Math.abs
- Math.round
- Math.ceil & Math.floor
- Math.min
Tất cả các ứng dụng như vậy đều yêu cầu sử dụng các phép tính / phương trình phức tạp, rất tẻ nhạt để thực hiện thủ công. Về mặt lập trình, các phép tính như vậy sẽ liên quan đến việc sử dụng logarit, lượng giác, phương trình mũ, v.v.
Bây giờ, bạn không thể có tất cả các bảng nhật ký hoặc bảng lượng giác được mã hóa cứng ở đâu đó trong ứng dụng hoặc dữ liệu của bạn. Dữ liệu sẽ rất lớn và phức tạp để duy trì.
Java cung cấp một lớp rất hữu ích cho mục đích này. Nó là lớp Math java (java.lang.Math).
Lớp này cung cấp các phương thức để thực hiện các phép toán như hàm mũ, logarit, nghiệm nguyên và cả phương trình lượng giác.
Chúng ta hãy xem xét các phương thức được cung cấp bởi lớp Toán Java.
Hai yếu tố cơ bản nhất trong Toán học là 'e' (cơ số của lôgarit tự nhiên) và 'pi' (tỷ số giữa chu vi hình tròn với đường kính của nó). Hai hằng số này thường được yêu cầu trong các phép tính / hoạt động ở trên.
Do đó, lớp Toán học java cung cấp hai hằng số này dưới dạng các trường kép.
Math.E - có giá trị là 2.718281828459045
Math.PI - có giá trị là 3,141592653589793
A) Chúng ta hãy xem bảng dưới đây cho chúng ta thấy các phương pháp Cơ bản và mô tả của nó
phương pháp | Sự miêu tả | Tranh luận |
cơ bụng | Trả về giá trị tuyệt đối của đối số | Double, float, int, long |
tròn | Trả về giá trị int hoặc long đã đóng (theo đối số) | gấp đôi hoặc nổi |
ceil | Trả về số nguyên nhỏ nhất lớn hơn hoặc bằng đối số | Gấp đôi |
sàn nhà | Trả về số nguyên lớn nhất nhỏ hơn hoặc bằng đối số | Gấp đôi |
min | Trả về giá trị nhỏ nhất trong hai đối số | Double, float, int, long |
tối đa | Trả về giá trị lớn nhất trong hai đối số | Double, float, int, long |
Dưới đây là cách triển khai mã của các phương pháp trên:
Lưu ý: Không cần nhập rõ ràng java.lang.Math như được nhập ngầm của nó. Tất cả các phương thức của nó là tĩnh.
Biến số nguyên
int i1 = 27;int i2 = -45;
Biến kép (thập phân)
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));}}Đầu ra:
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));}}Đầu ra:
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));}}Đầu ra:
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));}}Đầu ra:
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
B) Chúng ta hãy xem bảng dưới đây cho chúng ta thấy các phương pháp lũy thừa và lôgarit và mô tả của nó-
phương pháp | Sự miêu tả | Tranh luận |
exp | Trả về cơ sở của log tự nhiên (e) thành lũy thừa của đối số | Gấp đôi |
Nhật ký | Trả về nhật ký tự nhiên của đối số | gấp đôi |
Pow | Lấy 2 đối số làm đầu vào và trả về giá trị của đối số đầu tiên được nâng lên thành sức mạnh của đối số thứ hai | Gấp đôi |
sàn nhà | Trả về số nguyên lớn nhất nhỏ hơn hoặc bằng đối số | Gấp đôi |
Sqrt | Trả về căn bậc hai của đối số | Gấp đôi |
Dưới đây là cách triển khai mã của các phương pháp trên: (Các biến tương tự được sử dụng như trên)
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));}}Đầu ra:
exp(0.45) = 1.568312185490169log(0.45) = -0.7985076962177716pow(5, 3) = 125.0sqrt(16) = 4.0
C) Hãy xem bảng dưới đây cho chúng ta thấy các phương pháp Lượng giác và mô tả của nó-
phương pháp | Sự miêu tả | Tranh luận |
Tội | Trả về Sine của đối số được chỉ định | Gấp đôi |
Cos | Trả về Cosine của đối số được chỉ định | gấp đôi |
Tan | Trả về Tangent của đối số được chỉ định | Gấp đôi |
Atan2 | Chuyển đổi tọa độ hình chữ nhật (x, y) thành cực (r, theta) và trả về theta | Gấp đôi |
toDegrees | Chuyển đổi các đối số thành độ | Gấp đôi |
Sqrt | Trả về căn bậc hai của đối số | Gấp đôi |
toRadians | Chuyển đổi các đối số thành radian | Gấp đôi |
Đối số mặc định bằng Radian
Dưới đây là triển khai mã:
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));}}Đầu ra:
sin(30) = 0.49999999999999994cos(30) = 0.8660254037844387tan(30) = 0.5773502691896257Theta = 1.1071487177940904
Bây giờ, với những điều trên, bạn cũng có thể thiết kế máy tính khoa học của riêng mình trong java.