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

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

Chủ Đề