Làm cách nào để định dạng một số thành 2 chữ số thập phân trong JavaScript?

Bạn sẽ nhận thấy rằng 123. 456789 hiện đã được chuyển đổi thành 123. 45. Tất nhiên, bạn có thể thực hiện phép tính trên trong một dòng như sau

Show

    const someNumber = 123.456789 const formattedNumber = Math.floor(someNumber * 100) / 100 console.log(formattedNumber) //output 123.45

    Code language: JavaScript (javascript)

    Để làm tương tự nhưng với ba chữ số thập phân thay vì hai, thay vào đó, bạn có thể nhân và chia cho 1000

    const anotherNumber = 123.456789 const formattedNumber = Math.floor(anotherNumber * 1000) / 1000 console.log(formattedNumber) //output 123.456

    Code language: JavaScript (javascript)

    Bạn có thể cấu trúc lại mã hơn nữa để có hàm nhân với số lượng 10 giây được yêu cầu như sau

    function getMultiplier(digits) { let multiplier = 1 for (let i = 0; i < digits; i++) { multiplier = multiplier * 10 } return multiplier } const anotherNumber = 123.456789 const formattedNumber = Math.floor(anotherNumber * getMultiplier(2)) / getMultiplier(2) console.log(formattedNumber) //output 123.45

    Code language: JavaScript (javascript)

    Một cách khác để định dạng một số mà không cần làm tròn số là sử dụng biểu thức chính quy. Đây là một ví dụ để chứng minh điều tương tự

    Số chữ 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à

    const anotherNumber = 123.456789 const formattedNumber = Math.floor(anotherNumber * 1000) / 1000 console.log(formattedNumber) //output 123.456

    Code language: JavaScript (javascript)
    9

    Một chuỗi đại diện cho số đã cho bằng cách sử dụng ký hiệu điểm cố định

    (1000000000000000128).toString(); // '1000000000000000100'
    (1000000000000000128).toFixed(0); // '1000000000000000128'
    
    0

    Nếu

    function getMultiplier(digits) { let multiplier = 1 for (let i = 0; i < digits; i++) { multiplier = multiplier * 10 } return multiplier } const anotherNumber = 123.456789 const formattedNumber = Math.floor(anotherNumber * getMultiplier(2)) / getMultiplier(2) console.log(formattedNumber) //output 123.45

    Code language: JavaScript (javascript)
    2 nhỏ hơn ________ 19, lớn hơn ________ 20 hoặc là ________ 34

    (1000000000000000128).toString(); // '1000000000000000100'
    (1000000000000000128).toFixed(0); // '1000000000000000128'
    
    5

    Nếu phương thức này được gọi trên một đối tượng không phải là

    (1000000000000000128).toString(); // '1000000000000000100'
    (1000000000000000128).toFixed(0); // '1000000000000000128'
    
    6

    Phương thức

    function getMultiplier(digits) { let multiplier = 1 for (let i = 0; i < digits; i++) { multiplier = multiplier * 10 } return multiplier } const anotherNumber = 123.456789 const formattedNumber = Math.floor(anotherNumber * getMultiplier(2)) / getMultiplier(2) console.log(formattedNumber) //output 123.45

    Code language: JavaScript (javascript)
    5 trả về một chuỗi đại diện của
    (1000000000000000128).toString(); // '1000000000000000100'
    (1000000000000000128).toFixed(0); // '1000000000000000128'
    
    8 không sử dụng ký hiệu số mũ và có chính xác 22 chữ số 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 giá trị tuyệt đối của

    (1000000000000000128).toString(); // '1000000000000000100'
    (1000000000000000128).toFixed(0); // '1000000000000000128'
    
    8 lớn hơn hoặc bằng 1021, phương pháp này sử dụng thuật toán tương tự như
    0.3.toFixed(50); // '0.29999999999999998889776975374843459576368331909180'
    
    1 và trả về một chuỗi theo ký hiệu hàm mũ.

    function getMultiplier(digits) { let multiplier = 1 for (let i = 0; i < digits; i++) { multiplier = multiplier * 10 } return multiplier } const anotherNumber = 123.456789 const formattedNumber = Math.floor(anotherNumber * getMultiplier(2)) / getMultiplier(2) console.log(formattedNumber) //output 123.45

    Code language: JavaScript (javascript)
    5 trả về
    0.3.toFixed(50); // '0.29999999999999998889776975374843459576368331909180'
    
    3,
    0.3.toFixed(50); // '0.29999999999999998889776975374843459576368331909180'
    
    4 hoặc
    0.3.toFixed(50); // '0.29999999999999998889776975374843459576368331909180'
    
    5 nếu giá trị của
    (1000000000000000128).toString(); // '1000000000000000100'
    (1000000000000000128).toFixed(0); // '1000000000000000128'
    
    8 là không hữu hạn

    Đầu ra của

    function getMultiplier(digits) { let multiplier = 1 for (let i = 0; i < digits; i++) { multiplier = multiplier * 10 } return multiplier } const anotherNumber = 123.456789 const formattedNumber = Math.floor(anotherNumber * getMultiplier(2)) / getMultiplier(2) console.log(formattedNumber) //output 123.45

    Code language: JavaScript (javascript)
    5 có thể chính xác hơn
    0.3.toFixed(50); // '0.29999999999999998889776975374843459576368331909180'
    
    8 đối với một số giá trị, vì
    0.3.toFixed(50); // '0.29999999999999998889776975374843459576368331909180'
    
    8 chỉ in đủ các chữ số có nghĩa để phân biệt số với các giá trị số liền kề. Ví dụ

    (1000000000000000128).toString(); // '1000000000000000100'
    (1000000000000000128).toFixed(0); // '1000000000000000128'
    

    Tuy nhiên, việc chọn độ chính xác của

    function getMultiplier(digits) { let multiplier = 1 for (let i = 0; i < digits; i++) { multiplier = multiplier * 10 } return multiplier } const anotherNumber = 123.456789 const formattedNumber = Math.floor(anotherNumber * getMultiplier(2)) / getMultiplier(2) console.log(formattedNumber) //output 123.45

    Code language: JavaScript (javascript)
    2 quá cao có thể trả về kết quả không mong muốn, vì các số phân số thập phân không thể được biểu diễn chính xác ở dạng dấu phẩy động. Ví dụ

    0.3.toFixed(50); // '0.29999999999999998889776975374843459576368331909180'
    

    const anotherNumber = 123.456789 const formattedNumber = Math.floor(anotherNumber * 1000) / 1000 console.log(formattedNumber) //output 123.456

    Code language: JavaScript (javascript)
    8

    Vì quyền truy cập thành viên có quyền ưu tiên cao hơn phép trừ đơn nguyên, bạn cần nhóm biểu thức số âm để nhận chuỗi