JavaScript làm tròn số đến 2 chữ số thập phân (cho ví dụ)
1. Cấu trúc cú pháp trong JavaScript
Không giống như các ngôn ngữ đa năng khác, JavaScript cũng có cú pháp, câu lệnh, biến, hàm và định dạng ngữ nghĩa riêng.
Câu lệnh là hướng dẫn được đưa ra để thực hiện một tác vụ, trong bất kỳ ngôn ngữ lập trình nào. Câu lệnh JS bao gồm các biến, chú thích, giá trị, biểu thức và dấu chấm phẩy (tùy chọn).
Tất cả các phép toán và cú pháp đều dễ học như các ngôn ngữ khác. Một biến phải được khai báo trước bất kỳ phép gán nào trong JS. Để khai báo một biến, bạn có thể sử dụng "var" hoặc "let".
var a;
let b
//semicolon is optional.
a = 2;
b = 3;
console.log("print sum of a and b:",a+b) // output print sum of a and b: 5
2. Sử dụng toFixed()
Phương thức toFixed() chuyển đổi số thành chuỗi với số chữ số thập phân mong muốn.
let num = 5.6789;
let roundedNum = num.toFixed(2); // Kết quả: "5.68" (chuỗi)
Lưu ý: toFixed() trả về chuỗi. Nếu cần kết quả là số, bạn có thể chuyển đổi lại bằng parseFloat():
let roundedNum = parseFloat(num.toFixed(2)); // Kết quả: 5.68 (số)
Ví dụ:
var a = 5.678948;
let b = 10.257683;
let result1 = a.toFixed();
let result2 = b.toFixed(2);
console.log(result1); // 6
console.log(result2); // 10.26
Ghi chú: Hàm toFixed(x) – Luôn luôn ép kiểu số thập phân (giá trị float) đã cho thành chuỗi trước. Sau đó làm tròn số thành x chữ số thập phân. Do đó, kiểu dữ liệu của kết quả sẽ là chuỗi. Bạn có thể xác minh bằng cách sử dụng hàm typeof.
console.log(typeof result2) //string
3. Sử dụng Math.round()
Bạn cũng có thể sử dụng Math.round() kết hợp với nhân và chia để làm tròn đến 2 chữ số thập phân.
Ví dụ 1:
let num = 5.6789;
let roundedNum = Math.round(num * 100) / 100; // Kết quả: 5.68
Ví dụ 2:
var a = 5.678948;
let b = 10.257683;
let c = 6.6456583;
let result1 = Math.round(a*100)/100;
let result2 = Math.round(b*10)/10;
let result3 = Math.round(x*1000)/1000;
console.log(result1) // 5.68
console.log(result2) // 10.3
console.log(typeof result2) // 6.646
Hãy cùng khám phá một số tình huống mà các hàm trên không đưa ra câu trả lời đúng. Ví dụ, hàm này trả về 1,25 thay vì 1,26 cho số 1,255. Tương tự, nó sẽ trả về 1 cho số 1,005 thay vì 1,01. Do đó, có một số phạm vi cho những thay đổi trong "Math. round()". Ở đây tôi đã liệt kê một số phương pháp mà bạn có thể sử dụng để sửa đổi hàm.
Ví dụ: Dùng Number.EPSILON
var a = 1.005;
var b = 1.255;
let result1 = Math.round((a + Number.EPSILON)*100)/100;
let result2 = Math.round((b + Number.EPSILON)*100)/100;
console.log(result1) // 1.01
console.log(result2) // 1.26
4. Sử dụng hàm làm tròn số
Như bạn đã biết, javascript cũng hỗ trợ lập trình hướng đối tượng. Do đó, bạn cũng có thể tận dụng lợi thế đó. Có một cách tiếp cận khác để làm tròn số là sử dụng constructor – Intl.NumberFormat(). Constructor này định dạng số thành tiền tệ theo ngôn ngữ hoặc vùng đã cho. Nếu ngôn ngữ không được đề cập, nó sẽ định dạng số chỉ bằng cách thêm dấu phẩy. Bạn có thể sử dụng constructor này có hoặc không có từ khóa new.
Ví dụ:
//without locale
console.log(new Intl.NumberFormat().format(125698)); // 125,698
//with locale - US and Japanese
console.log(Intl.NumberFormat('en-US').format(125698)); // 125,698
console.log(Intl.NumberFormat('de-DE').format(125698)); // 125.698
5. Tự định nghĩa hàm làm tròn
Đây là các hàm do chính người dùng định nghĩa. Tôi đã đưa ra một số ví dụ bên dưới: Ví dụ về hàm do người dùng định nghĩa bằng cách sử dụng số mũ. Nó sẽ làm tròn số lên và xuống. “e+2”, 2 dành cho 2 chữ số thập phân.
Ví dụ:
var a = 1.005;
let b = 2.68678;
function roundNum(number){
return +(Math.round(number + "e+2") + "e-2");
}
console.log(roundNum(a)) // 1.01
console.log(roundNum(b)) // 2.69
Như tôi đã trình bày một số phương pháp ở trên, bạn có thể sử dụng một trong các cách tiếp cận để làm tròn số thập phân trong javascript. Bạn cũng có thể định nghĩa hàm do người dùng định nghĩa để giải quyết vấn đề trên.
Cuối cùng, một điểm bổ sung hoặc gợi ý nữa dành cho bạn là sử dụng các hàm Math.floor() và Math.ceil(). bằng cách sử dụng hai hàm này, bạn có thể làm tròn xuống hoặc làm tròn lên một số.
Cuối cùng, bạn đã học được các cách tiếp cận khác nhau để làm tròn số lên đến các chữ số thập phân cho trước. Hãy thử tự mình thực hiện điều này. Hãy đưa ra thêm một số kỹ thuật để giải quyết vấn đề này.
Tham khảo thêm stackoverflow: How to round to at most 2 decimal places, if necessary