Trong MySQL, ROUND()
hàm cho phép bạn làm tròn một số lên hoặc xuống một số chữ số thập phân nhất định.
Cách thức hoạt động là bạn cung cấp số dưới dạng đối số và bạn có tùy chọn chọn bao nhiêu chữ số thập phân để làm tròn số. Nếu bạn không chỉ định số vị trí thập phân, kết quả sẽ không có vị trí thập phân.
Cú pháp
Chức năng này có thể được sử dụng theo một trong các cách sau:
ROUND(X) ROUND(X,D)
Ở đâu X
là số và D
là số chữ số thập phân mà bạn muốn làm tròn thành. Nếu bạn bỏ qua D
, số sẽ được làm tròn thành 0 chữ số thập phân.
Ngoài ra, D
có thể là tiêu cực. Điều này dẫn đến D
các chữ số bên trái dấu thập phân của giá trị X
trở thành số không.
Ví dụ 1 - Sử dụng một đối số
Dưới đây là một ví dụ cơ bản để chứng minh điều gì sẽ xảy ra khi chúng tôi không cung cấp đối số thứ hai.
SELECT ROUND(1.49) Result;
Kết quả:
+--------+ | Result | +--------+ | 1 | +--------+
Trong trường hợp này, số được làm tròn xuống số nguyên gần nhất.
Nếu chúng ta tăng phần phân số, đây là điều sẽ xảy ra:
Kết quảSELECT ROUND(1.50) Result;
Kết quả:
+--------+ | Result | +--------+ | 2 | +--------+
Trong trường hợp này, thay vào đó, số được làm tròn.
Ví dụ 2 - Sử dụng hai đối số
Đây là cách chúng tôi có thể sử dụng đối số thứ hai để chỉ định các vị trí thập phân để làm tròn số.
SELECT ROUND(1.234, 2) Result;
Kết quả:
+--------+ | Result | +--------+ | 1.23 | +--------+
Và đây là những gì sẽ xảy ra khi tôi tăng chữ số cuối cùng lên 5:
SELECT ROUND(1.235, 2) Result;
Kết quả:
+--------+ | Result | +--------+ | 1.24 | +--------+
Tất nhiên, chúng ta có thể sử dụng nhiều chữ số thập phân hơn. Ví dụ:chúng tôi có thể cắt bớt rất nhiều chữ số thập phân.
SELECT ROUND(1.23456789123456789, 8) Result;
Kết quả:
+------------+ | Result | +------------+ | 1.23456789 | +------------+
Hoặc chúng tôi có thể tăng số lượng vị trí thập phân.
SELECT ROUND(1.234, 8) Result;
Kết quả:
+------------+ | Result | +------------+ | 1.23400000 | +------------+
Ví dụ 3 - Sử dụng Giá trị Phủ định cho Đối số Thứ hai
Dưới đây là cách chúng tôi có thể sử dụng giá trị âm trên đối số thứ hai để làm cho các phần của phần không phải là phân số được làm tròn thành 0.
SELECT ROUND(123.456, -1) Result;
Kết quả:
+--------+ | Result | +--------+ | 120 | +--------+
Và đây là cách nó được làm tròn nếu chúng ta tăng 3
thành 5
trở lên.
SELECT ROUND(125.456, -1) Result;
Kết quả:
+--------+ | Result | +--------+ | 130 | +--------+
Ví dụ 4 - Làm tròn số âm so với số dương
Như đã thấy trong các ví dụ trước, khi sử dụng số dương, giá trị có phần thập phân là .5 trở lên được làm tròn thành số nguyên tiếp theo.
Tuy nhiên, khi sử dụng số âm, các giá trị như vậy được làm tròn xuống .
SELECT ROUND(1.50) Positive, ROUND(-1.50) Negative;
Kết quả:
+----------+----------+ | Positive | Negative | +----------+----------+ | 2 | -2 | +----------+----------+
Làm tròn các Số Giá trị Ước tính
Quy tắc làm tròn ở trên chỉ áp dụng cho các số có giá trị chính xác. Đối với các số có giá trị gần đúng, kết quả phụ thuộc vào thư viện C. Tài liệu MySQL nêu rõ điều này về các số giá trị gần đúng:
Trên nhiều hệ thống, điều này có nghĩa là
ROUND()
sử dụng quy tắc "làm tròn đến chẵn gần nhất":Giá trị có phần thập phân nằm chính xác giữa hai số nguyên được làm tròn thành số nguyên chẵn gần nhất.
Và đây là ví dụ được sử dụng trên trang đó:
SELECT ROUND(2.5), ROUND(25E-1);
Kết quả:
+------------+--------------+ | ROUND(2.5) | ROUND(25E-1) | +------------+--------------+ | 3 | 2 | +------------+--------------+