Làm tròn số trong Javascript – Đối với nhiều bạn mới học JavaScript hoặc đang thực thi ngôn ngữ này thì việc làm tròn số trong Javascript là kiến thức cần phải biết. Để giúp anh em dễ dàng sử dụng ngôn ngữ JavaScript hơn, ATPWEB sẽ hướng dẫn các bạn cách làm tròn số trong Javascript cực kỳ đơn giản
Xem thêm. MEANJS, MEAN Stack là gì?
Làm tròn và cắt bớt trong JavaScript
Sự khác biệt giữa hai phương pháp này là nhỏ nhưng bạn cần phải phân biệt được. Cả hai phương pháp này đều là phương pháp tính toán gần đúng một số bằng cách bỏ qua các chữ số thập phân
- Làm tròn [Làm tròn] đúng gần một số bằng cách sử dụng một số lân cận ở một mức độ chính xác nhất định. Nó có thể xảy ra theo hai hướng. up and down. Làm tròn lên gần đúng một số theo hướng dương vô cùng. Làm tròn xuống phía cực âm
- Truncating [Cắt giảm] sẽ cho ra các giá trị gần đúng mà không làm tròn số. Nói cách khác, nó “làm tròn” về phía 0
Rounding 3.14159 ≈ 3.1416 Truncating 3.14159 ≈ 3.1415
Hy vọng rằng bạn nhận được sự khác biệt. Điều này làm cho việc cắt giảm bớt khi hữu ích trong các phép tính chính xác [mặc dù JavaScript có thể không phải là một lựa chọn tốt cho bạn nếu cần tính toán chính xác] nhưng bạn có thể gặp phải một vấn đề mà nó có.
Ví dụ một lần có thể là khi cần giảm các vị trí thu thập phân tích khỏi giá trị pixel để tránh loại bỏ răng cưa hoặc làm tròn pixel kỳ lạ, điều này hoàn toàn khác biệt trên các trình duyệt công cụ
Use method. toFixed
Đầu tiên, chúng ta có thể sử dụng phương thức .toFixed[]
để làm tròn số trong JavaScript
var numb = 12312214.124124124; numb = numb.toFixed[2];
Phương pháp này không mang lại kết quả chính xác trong một số trường hợp, và có những phương pháp tốt hơn phương pháp này
Nếu một số làm tròn thành 1,2 thì nó sẽ hiển thị 1,20. If a number as 2. 005 được đưa ra, nó sẽ trả lại 2. 000 thay vì 2. 01
Use function Math. vòng []
Ở phương pháp làm tròn số trong JavaScript với hàm Math.round []
, chúng ta sẽ lấy số và thêm một số rất nhỏ, Number.EPSILON
, để đảm bảo làm tròn số chính xác
Sau đó, chúng ta nhân số đó với 100 trước khi làm tròn để chỉ lấy ra hai chữ số sau chữ số thập phân
Cuối cùng, chúng ta chia lại số cho 100 để có tối đa 2 chữ số phân tích
var numb= 212421434.533423131231; var rounded = Math.round[[numb + Number.EPSILON] * 100] / 100; console.log[rounded];
đầu ra
212421434.53
Mặc dù phương pháp này được cải thiện tốt hơn so với. toFixed[], nó vẫn không phải là giải pháp tốt nhất và cũng sẽ không làm tròn 1. 005 một cách chính xác
Sử dụng phương pháp làm tròn kép
Trong phương pháp này, chúng ta sử dụng phương thức
var numb = 12312214.124124124; numb = numb.toFixed[2];0 để loại bỏ các lỗi làm tròn dấu hài “động” xảy ra trong quá trình tính toán trung gian trong làm tròn đơn
function round[num] { var m = Number[[Math.abs[num] * 100].toPrecision[15]]; return Math.round[m] / 100 * Math.sign[num]; } console.log[round[1.005]];
đầu ra
1.01
Sử dụng chức năng tùy chỉnh để làm tròn một số trong JavaScript thành 2 chữ số thập phân
function roundToTwo[num] { return +[Math.round[num + "e+2"] + "e-2"]; } console.log[roundToTwo[2.005]];
Chức năng tùy chỉnh này xử lý tất cả các trường hợp góc và làm tròn các số thập phân như 1. 005 is this chức năng xử lý tốt
Tổng kết
Trên đây là các cách làm tròn số trong JavaScript cực kỳ nhanh chóng mà bạn có thể áp dụng trong thực tế công việc và học tập. Chúc các bạn thành công
Nguồn cho ví dụ tương tác này được lưu trữ trong kho lưu trữ GitHub. Nếu bạn muốn đóng góp cho dự án ví dụ tương tác, vui lòng sao chép https. //github. com/mdn/interactive-examples và gửi yêu cầu kéo cho chúng tôi
cú pháp
________số 8_______Thông số
digits
Tùy chọn Số chữ số sẽ xuất hiện sau dấu thập phân; . Nếu đối số này bị bỏ qua, nó được coi là 0. Giá trị trả về
Một chuỗi đại diện cho số đã cho bằng cách sử dụng ký hiệu điểm cố định
ngoại lệ
RangeError
Nếu digits
quá nhỏ hoặc quá lớn. Các giá trị từ 0 đến 100, bao gồm, sẽ không gây ra RangeError
. Việc triển khai được phép hỗ trợ các giá trị lớn hơn và nhỏ hơn như đã chọn. TypeError
Nếu phương thức này được gọi trên một đối tượng không phải là một Number
Sự miêu tả
toFixed[]
trả về một chuỗi đại diện của numObj
không sử dụng ký hiệu hàm mũ và có chính xác các chữ số ____12_______ sau vị trí thập phân. Số được làm tròn nếu cần và phần phân số được đệm bằng số 0 nếu cần để nó có độ dài đã chỉ định. Nếu numObj
lớn hơn hoặc bằng toFixed[]
2, thì phương thức này chỉ cần gọi toFixed[]
3 và trả về một chuỗi theo ký hiệu hàm mũ
Các số dấu phẩy động không thể biểu thị chính xác tất cả các số thập phân ở dạng nhị phân, điều này có thể dẫn đến các kết quả không mong muốn, chẳng hạn như toFixed[]
4 trả về toFixed[]
5
ví dụ
Sử dụng toFixed[]
6
thông số kỹ thuật
SpecificationStatusCommentECMAScript Phiên bản thứ 3 [ECMA-262] Tiêu chuẩn Định nghĩa ban đầu. Được triển khai trong JavaScript 1. 5. Tiêu chuẩn Tiêu chuẩn Bản thảoTính tương thích của trình duyệt web
Bảng tương thích trong trang này được tạo từ dữ liệu có cấu trúc. Nếu bạn muốn đóng góp cho dữ liệu, vui lòng xem https. //github. com/mdn/browser-compat-data và gửi yêu cầu kéo cho chúng tôi