Các hàm toán học trong Java

Java có một lớp gọi là lớp Math cung cấp các hàm về toán học như abs, ceil, floor,... Lớp này nằm trong gói java.lang (gói mặc định) do vậy bạn không cần phải thêm câu lệnh import ở đầu chương trình để có thể sử dụng lớp này. Các hàm này được viết là các phương thức tĩnh do vậy ta không cần phải tạo ra thể hiện của lớp Math.

cac-ham-toan-hoc-java

Các thuộc tính của lớp Math

Thư viện toán học Math là thư viện cung cấp các phương thức có sẵn để giải quyết các vấn đề về số học, chính vì thế mà lớp này cũng đã cung cấp cho chúng ta những thuộc tính để chúng ta sử dụng.

  • E: hằng số Euler (~ 2.7) // Math.E
  • PI: số pi (~ 3.14). // Math.PI
double eu = Math.E; // ~ 2.7
double pi = Math.PI; // ~ 3.14

Các hàm toán học trong Java

Trong java cung cấp cho chúng ta các hàm hỗ trợ tính toán nâng cao như tính sin, cos, căn bậc 2, làm tròn,... Sử dụng tốt lớp này khiến cho việc lập trình của chúng ta trở nên đơn giản hơn, dưới đây là tổng hợp các phép tính mà lớp Math hỗ trợ

Lấy giá trị tuyệt đối của Java - Math.abs()

Math.abs() trả về giá trị tuyệt đối của tham số truyền vào, hàm này có 4 cách nhận giá trị đầu vào như sau:

Math.abs(int)
Math.abs(long)
Math.abs(float)
Math.abs(double)
public class Main {
  public static void main(String[] args) {
    int x = 10;
    int y = -20;
    System.out.println(Math.abs(x - y)); // 30
    System.out.println(Math.abs(y - x)); // 30
    System.out.println(Math.abs(y)); // 20
    System.out.println(Math.abs(x)); // 10
  }
}

Làm tròn lên trong Java – Math.ceil()

Math.ceil() trả về giá trị double là số làm tròn lên với giá trị số nguyên gần nhất

public class Main {
  public static void main(String[] args) {
    int i = 5;
    float f = 5.4f;
    double d = 5.224d;
    double ri = Math.ceil(i); // 5.0
    double rf = Math.ceil(f); // 6.0
    double rd = Math.ceil(d); // 6.0
  }
}

Làm tròn xuống trong Java – Math.floor()

Math.floor() trả về giá trị double là số làm tròn xuống với giá trị số nguyên gần nhất

public class Main {
  public static void main(String[] args) {
    int i = 5;
    float f = 5.4f;
    double d = 5.224d;
    double ri = Math.floor(i); // 5.0
    double rf = Math.floor(f); // 5.0
    double rd = Math.floor(d); // 5.0
  }
}

Làm tròn số trong java – Math.round()

Ngoài ra Java còn cung cấp một hàm Math.round() để làm tròn số theo quy luật thông thường trong toán học. Hàm này có 2 kiểu nhận tham số đầu vào như sau:

Math.round(float, float)
Math.round(double, double)
double roundedDown = Math.round(23.445); // 23
double roundedUp   = Math.round(23.545); // 24

Chia 2 số nguyên và làm tròn trong Java – floorDiv()

Math.floorDiv() chia 1 số nguyên(int/long) với một số khác, và làm tròn xuống giá trị integer gần nhất.

public class Main {
  public static void main(String[] args) {
    double result1 = Math.floorDiv(-100,9);
    System.out.println("result: " + result1);
    double result2 = -100 / 9;
    System.out.println("result: " + result2);
    double result3 = Math.floorDiv(100,9);
    System.out.println("result: " + result3);
    double result4 = 100 / 9;
    System.out.println("result: " + result4);
  }
}

Tìm số lớn nhất của 2 số trong Java – Math.max()

Java cung cấp cho chúng ta hàm Math.max() để lấy số lớn trong hai số. Hàm này có 4 kiểu nhận tham số đầu vào

Math.max(int, int)
Math.max(long, long)
Math.max(float, float)
Math.max(double, double)
public class Main {
  public static void main(String[] args) {
    int i = Math.max(1, 2); // 2
    float f = Math.max(3.4f, 3.5f); // 3.5f
    float f1 = Math.max(3, 3.5f); // 3.5
    double d = Math.max(3.434d, 3.435d); // 3.435d
    double d1 = Math.max(3, 3.345d); // 3.345d
    double d2 = Math.max(3.5f, 3.345d); // 3.5
  }
}

Tìm số lớn nhỏ của 2 số trong Java – Math.min()

Java cung cấp cho chúng ta hàm Math.min() để lấy số nhỏ trong hai số. Hàm này có 4 kiểu nhận tham số đầu vào

Math.min(int, int)
Math.min(long, long)
Math.min(float, float)
Math.min(double, double)
public class Main {
  public static void main(String[] args) {
    int i = Math.min(1, 2); // 1
    float f = Math.min(3.4f, 3.5f); // 3.4f
    float f1 = Math.min(3, 3.5f); // 3
    double d = Math.min(3.434d, 3.435d); // 3.434d
    double d1 = Math.min(3, 3.345d); // 3
    double d2 = Math.min(3.5f, 3.345d); // 3.345d
  }
}

Lấy một số ngẫu nhiên trong Java - Math.random()

Ta có hàm Math.random() sẽ trả một một float trong khoảng 0 đến 1.

double random = Math.random();

Nếu bạn muốn random số nguyên ngẫu nhiên trong khoảng 0 đến 100 có thể kết hợp Math.random() với round(), ceil(), floor().

System.out.println(Math.ceil(Math.random() * 100D));

Một số hàm khác của lớp Math trong Java

Math.pow() lấy lũy thừa (cơ-số, số mũ)

double p = Math.pow(2, 3); // 8.0

Math.sqrt() khai căn

double a = Math.sqrt(9); //3

Math.sin(), Math.cos() sin và cos của góc đơn vị radian

double s = Math.sin(Math.PI/2); //1

Math.toDegrees() đổi góc radian thành độ

double goc = Math.toDegrees(Math.PI/2); //90

Math.toRadians() đổi góc đơn vị độ ra radian

double goc = Math.toRadians(45); //0.7853981633974483
Tên phương thứcMô tả ý nghĩaKiểu tham sốKiểu trả về
sin(arg)tính sin của argarg là một biểu thức kiểu double thể hiện một cung theo radiansdouble
cos(arg)tính cos của argarg là một biểu thức kiểu double thể hiện một cung theo radiansdouble
tan(arg)tính tang của argarg là một biểu thức kiểu double thể hiện một cung theo radiansdouble
asin(arg)tính sin-1 (arcsin)arg arg là một biểu thức kiểu double thể hiện một cung theo radiansdouble trong hệ radians
acos(arg)tính cos-1 (arccosin) của argarg là một biểu thức kiểu double thể hiện một cung theo radiansdouble trong hệ radians
atan(arg)tính tan-1 (arctang) của argarg là một biểu thức kiểu double thể hiện một cung theo radiansdouble trong hệ radians
atan2 (arg1,arg2)tính tan-1 (arctang) của arg1/arg2arg1,arg2 là các biểu thức kiểu double thể hiện một cung theo radiansdouble trong hệ radians
abs(arg)tính trị tuyệt đối của argarg là một biểu thức kiểu int, long, float, hoặc doubleThe same type as the argument
max (arg1,arg2)Nhận về giá trị lớn trong hai tham sốarg1, arg2 là một biểu thức kiểu int, long, float, hoặc doubleNhận về kiểu cùng kiểu với tham số
min (arg1,arg2)Nhận về giá trị nhỏ trong hai tham sốarg1, arg2 lµ mét biùu thøc kiùu int, long, float, hoÆc doubleNhận về kiểu cùng kiùu với tham số
ceil(arg)Nhận về giá trị nguyên nhỏ hơn hoặc bằng argarg là biểu thức kiểu float hoặc doubledouble
floor(arg)Nhận về giá trị nguyên lớn hơn hoặc bằng argarg là biểu thức kiểu float hoặc doubledouble
round(arg)Trả về giá trị nguyên gần arg nhất, giá trị này chính là giá trị của arg sau khi đã làm trònarg là biểu thức kiểu float hoặc doubleNhận về kiểu int nếu arg kiêu float, nhận về kiùu long nếu arg kiểu double
rint(arg)Giống như round(arg)arg là biểu thức kiểu doubledouble
sqrt(arg)tính căn bậc hai của argarg là biểu thức kiểu double double
pow (arg1,arg2)tính arg1arg2Cả arg1 và arg2 là các biểu thức kiểu doubledouble
exp(arg)tính eargarg là biểu thức kiểu doubledouble
log(arg)tính logarithmớ số e của argarg là biểu thức kiểu doubledouble
random()Nhận về một số giả ngẫu nhiên nằm trong khoản [0, 1)Không có tham sốdouble
Avatar Administrator

Administrator

@thaycacac
Cuộc sống không phải là phim ảnh, không có nhiều đến thế... những lần không hẹn mà gặp.
Logo thể loại Java

Java

Chuyên mục học lập trình
Học Java từ cơ bản đến thông thạo cho mọi đối tượng
hello