Số chữ số JavaScript
Các số thông thường trong JavaScript được lưu trữ ở định dạng 64 bit IEEE-754, còn được gọi là "số dấu phẩy động chính xác kép". Đây là những con số mà chúng tôi sử dụng hầu hết thời gian và chúng tôi sẽ nói về chúng trong chương này Show Số BigInt đại diện cho số nguyên có độ dài tùy ý. Đôi khi chúng cần thiết vì một số nguyên thông thường không thể an toàn vượt quá 6 hoặc nhỏ hơn 7, như chúng tôi đã đề cập trước đó trong chương Kiểu dữ liệu. Vì bigint được sử dụng trong một số lĩnh vực đặc biệt, chúng tôi dành cho chúng một chương đặc biệt BigIntVì vậy, ở đây chúng ta sẽ nói về các số thông thường. Hãy mở rộng kiến thức của chúng ta về chúng Hãy tưởng tượng chúng ta cần viết 1 tỷ. Cách rõ ràng là
Chúng ta cũng có thể sử dụng dấu gạch dưới 8 làm dấu phân cách
Ở đây, dấu gạch dưới 8 đóng vai trò “đường cú pháp”, nó làm cho số dễ đọc hơn. Công cụ JavaScript chỉ cần bỏ qua 8 giữa các chữ số, do đó, nó chính xác bằng một tỷ như trênTuy nhiên, trong cuộc sống thực, chúng tôi cố gắng tránh viết các chuỗi số 0 dài. Chúng tôi quá lười biếng cho việc đó. Chúng tôi sẽ cố gắng viết một cái gì đó như 1 cho một tỷ hoặc 2 cho 7 tỷ 300 triệu. Điều này cũng đúng với hầu hết các số lớnTrong JavaScript, chúng ta có thể rút ngắn một số bằng cách thêm chữ cái 3 vào nó và chỉ định số lượng số 0 0Nói cách khác, 4 nhân số với 5 với số 0 đã cho
Bây giờ chúng ta hãy viết một cái gì đó rất nhỏ. Nói, 1 micro giây (một phần triệu giây)
Giống như trước đây, sử dụng 3 có thể giúp. Nếu chúng tôi muốn tránh viết các số 0 một cách rõ ràng, chúng tôi có thể viết giống như 6Nếu chúng ta đếm số 0 trong 7, thì có 6 số. Vì vậy, tự nhiên nó là 8Nói cách khác, một số âm sau 3 có nghĩa là một phép chia cho 1 với số lượng các số 0 đã cho 0Số thập lục phân được sử dụng rộng rãi trong JavaScript để thể hiện màu sắc, mã hóa ký tự và cho nhiều thứ khác. Vì vậy, một cách tự nhiên, tồn tại một cách ngắn hơn để viết chúng. 60 và sau đó là sốVí dụ 2Các hệ thống số nhị phân và bát phân hiếm khi được sử dụng, nhưng cũng được hỗ trợ bằng cách sử dụng tiền tố 61 và 62 5Chỉ có 3 hệ thống số có hỗ trợ như vậy. Đối với các hệ thống số khác, chúng ta nên sử dụng hàm 63 (mà chúng ta sẽ thấy ở phần sau của chương này)Phương thức 64 trả về một chuỗi đại diện của 65 trong hệ thống số với 66 đã choVí dụ 0 66 có thể thay đổi từ 68 đến 69. Theo mặc định, đó là 00Các trường hợp sử dụng phổ biến cho việc này là
Hai dấu chấm để gọi một phương thức Xin lưu ý rằng hai dấu chấm trong 09 không phải là lỗi đánh máy. Nếu chúng ta muốn gọi một phương thức trực tiếp trên một số, chẳng hạn như 20 trong ví dụ trên, thì chúng ta cần đặt hai dấu chấm 21 sau nóNếu chúng ta đặt một dấu chấm. 22, thì sẽ có lỗi, vì cú pháp JavaScript ngụ ý phần thập phân sau dấu chấm đầu tiên. Và nếu chúng ta đặt thêm một dấu chấm, thì JavaScript sẽ biết rằng phần thập phân trống và bây giờ sẽ chuyển sang phương thứcCũng có thể viết 23Một trong những phép toán được sử dụng nhiều nhất khi làm việc với số là làm tròn Có một số chức năng tích hợp để làm tròn 24Làm tròn xuống. 25 trở thành 26 và 27 trở thành 28. 29Làm tròn. 25 trở thành 51 và 27 trở thành 53. 54Làm tròn đến số nguyên gần nhất. 25 trở thành 26, 57 trở thành 51, trường hợp giữa. 59 cũng làm tròn lên tới 51. 01 (không được Internet Explorer hỗ trợ) Xóa mọi thứ sau dấu thập phân mà không làm tròn. ________ 225 trở thành ________ 226, ________ 227 trở thành ________ 253Đây là bảng để tóm tắt sự khác biệt giữa chúng ____224 29 54 01 25 26 51 26 26 57 26 51 51 26 27 28 53 53 53 15 28 53 28 53Các chức năng này bao gồm tất cả các cách có thể để xử lý phần thập phân của một số. Nhưng nếu chúng ta muốn làm tròn số thành 20 chữ số sau dấu thập phân thì sao?Chẳng hạn, chúng tôi có 21 và muốn làm tròn nó thành 2 chữ số, chỉ nhận được 22Có hai cách để làm như vậy
Bên trong, một số được thể hiện ở định dạng 64 bit IEEE-754, do đó, có chính xác 64 bit để lưu trữ một số. 52 trong số chúng được sử dụng để lưu trữ các chữ số, 11 trong số chúng lưu trữ vị trí của dấu thập phân và 1 bit dành cho dấu Nếu một số thực sự lớn, nó có thể tràn bộ nhớ 64-bit và trở thành một giá trị số đặc biệt 29 5Điều có thể ít rõ ràng hơn một chút, nhưng xảy ra khá thường xuyên, đó là sự mất chính xác Hãy xem xét điều này (giả. ) kiểm tra bình đẳng 6Đúng vậy, nếu chúng ta kiểm tra xem tổng của 30 và 31 có phải là 32 hay không, chúng ta sẽ nhận được 33Lạ lùng. Vậy thì nó là gì nếu không phải là 32? 7ôi. Hãy tưởng tượng bạn đang tạo một trang web mua sắm điện tử và khách truy cập đặt hàng hóa 35 và 36 vào giỏ hàng của họ. Tổng đơn hàng sẽ là 37. Điều đó sẽ làm bất ngờ bất cứ aiNhưng tại sao điều này lại xảy ra? Một số được lưu trữ trong bộ nhớ ở dạng nhị phân, một chuỗi các bit – số đơn vị và số không. Nhưng những phân số như 30, 31 trông có vẻ đơn giản trong hệ thống số thập phân thực ra là những phân số vô tận ở dạng nhị phân của chúng 30 là gì? . Trong hệ thống số thập phân, những số như vậy có thể dễ dàng biểu diễn. So sánh nó với một phần ba. 42. Nó trở thành phân số vô tận 43Vì vậy, phép chia cho lũy thừa 00 được đảm bảo hoạt động tốt trong hệ thập phân, nhưng phép chia cho 26 thì không. Vì lý do tương tự, trong hệ thống số nhị phân, phép chia cho lũy thừa của 68 được đảm bảo hoạt động, nhưng 41 trở thành một phân số nhị phân vô tậnKhông có cách nào để lưu trữ chính xác 0. 1 hoặc chính xác là 0. 2 bằng hệ thống nhị phân, giống như không có cách nào để lưu trữ một phần ba dưới dạng phân số thập phân Định dạng số IEEE-754 giải quyết vấn đề này bằng cách làm tròn đến số gần nhất có thể. Các quy tắc làm tròn này thường không cho phép chúng ta nhìn thấy "độ mất chính xác nhỏ" đó, nhưng nó tồn tại Chúng ta có thể thấy điều này trong hành động 8Và khi chúng ta tính tổng hai số, "tổn thất chính xác" của chúng cộng lại Đó là lý do tại sao 48 không chính xác là 32Không chỉ JavaScript Vấn đề tương tự tồn tại ở nhiều ngôn ngữ lập trình khác PHP, Java, C, Perl, Ruby cho kết quả chính xác như nhau, bởi vì chúng dựa trên cùng một định dạng số Chúng ta có thể giải quyết vấn đề không? 9Xin lưu ý rằng 26 luôn trả về một chuỗi. Nó đảm bảo rằng nó có 2 chữ số sau dấu thập phân. Điều đó thực sự tiện lợi nếu chúng ta có một trang mua sắm điện tử và cần hiển thị 51. Đối với các trường hợp khác, chúng ta có thể sử dụng phép cộng đơn vị để biến nó thành một số 00Chúng ta cũng có thể tạm thời nhân các số với 100 (hoặc một số lớn hơn) để biến chúng thành số nguyên, làm phép tính rồi chia lại. Sau đó, khi chúng ta làm toán với các số nguyên, sai số giảm đi phần nào, nhưng chúng ta vẫn mắc lỗi khi chia 01Vì vậy, phương pháp nhân/chia giúp giảm lỗi, nhưng không loại bỏ hoàn toàn Đôi khi chúng ta có thể cố gắng trốn tránh các phân số. Giống như nếu chúng ta đang giao dịch với một cửa hàng, thì chúng ta có thể lưu trữ giá bằng xu thay vì đô la. Nhưng nếu chúng tôi áp dụng giảm giá 30% thì sao? . Chỉ cần làm tròn chúng để cắt “đuôi” khi cần thiết điều buồn cười Hãy thử chạy cái này 02Điều này bị cùng một vấn đề. mất độ chính xác. Có 64 bit cho số, 52 trong số đó có thể được sử dụng để lưu trữ các chữ số, nhưng điều đó là không đủ. Vì vậy, các chữ số ít quan trọng nhất biến mất JavaScript không gây ra lỗi trong các sự kiện như vậy. Nó cố gắng hết sức để khớp số vào định dạng mong muốn, nhưng thật không may, định dạng này không đủ lớn hai số 0 Một hệ quả buồn cười khác của biểu diễn bên trong các số là sự tồn tại của hai số 0. 03 và 53Đó là bởi vì một dấu hiệu được biểu thị bằng một bit duy nhất, do đó, nó có thể được đặt hoặc không được đặt cho bất kỳ số nào kể cả số không Trong hầu hết các trường hợp, sự khác biệt là không đáng chú ý, bởi vì các toán tử phù hợp để coi chúng như nhau. Hãy nhớ hai giá trị số đặc biệt này?
Chúng thuộc loại 57, nhưng không phải là số “bình thường”, vì vậy có các chức năng đặc biệt để kiểm tra chúng
Đôi khi, 65 được sử dụng để xác thực xem giá trị chuỗi có phải là số thông thường hay không 06Xin lưu ý rằng một chuỗi trống hoặc chỉ có khoảng trắng được coi là 03 trong tất cả các hàm số bao gồm cả 65
Con số. isNaN và số. Các phương thức isFinite là phiên bản "nghiêm ngặt" hơn của các hàm 70 và 65. Họ không tự động chuyển đổi đối số của mình thành một số, nhưng thay vào đó hãy kiểm tra xem nó có thuộc loại 57 không
Theo một cách nào đó, 68 và 69 đơn giản và dễ hiểu hơn các hàm 70 và 65. Tuy nhiên, trong thực tế, 70 và 65 hầu hết được sử dụng, vì chúng ngắn hơn để viếtSo sánh với Có một phương pháp tích hợp đặc biệt 89 so sánh các giá trị như 91, nhưng đáng tin cậy hơn cho hai trường hợp cạnh
Trong tất cả các trường hợp khác, ________ 497 giống như ________ 498 Chúng tôi đề cập đến 89 ở đây, vì nó thường được sử dụng trong đặc tả JavaScript. Khi một thuật toán nội bộ cần so sánh hai giá trị giống hệt nhau, nó sẽ sử dụng 89 (được gọi nội bộ là )Chuyển đổi số bằng cách sử dụng dấu cộng 001 hoặc 27 là nghiêm ngặt. Nếu một giá trị không chính xác là một số, nó sẽ thất bại 09Ngoại lệ duy nhất là khoảng trắng ở đầu hoặc cuối chuỗi, vì chúng bị bỏ qua Nhưng trong cuộc sống thực, chúng ta thường có các giá trị theo đơn vị, như 003 hoặc 004 trong CSS. Ngoài ra, ở nhiều quốc gia, ký hiệu tiền tệ đi sau số tiền, vì vậy chúng tôi có 005 và muốn trích xuất một giá trị số từ đóĐó là những gì 63 và 007 dành choHọ “đọc” một số từ một chuỗi cho đến khi họ không thể. Trong trường hợp có lỗi, số đã thu thập được trả về. Hàm 63 trả về một số nguyên, trong khi hàm 007 sẽ trả về một số dấu phẩy động 0Có những tình huống khi 010 sẽ trở lại 56. Nó xảy ra khi không có chữ số nào có thể đọc được 1Đối số thứ hai của Hàm 013 có tham số thứ hai tùy chọn. Nó chỉ định cơ sở của hệ thống số, vì vậy, 63 cũng có thể phân tích các chuỗi số hex, số nhị phân, v.v. 2JavaScript có một đối tượng Math tích hợp chứa một thư viện nhỏ các hàm và hằng số toán học Một vài ví dụ 015Trả về một số ngẫu nhiên từ 0 đến 1 (không bao gồm 1) 3 016 và 017Trả về giá trị lớn nhất và nhỏ nhất từ số lượng đối số tùy ý 4 018Trả về 24 được nâng lên lũy thừa đã cho 5Có nhiều hàm và hằng số hơn trong đối tượng 020, bao gồm lượng giác, mà bạn có thể tìm thấy trong tài liệu dành cho đối tượng Math
Làm cách nào để đếm số chữ số trong JavaScript?JavaScript. Đếm các chữ số của một số nguyên . Giải pháp mẫu. - Mã HTML. <. . Mã JavaScript. hàm chữ số_count(n) { var count = 0; . log(số_đếm(12112)); . log(số_đếm(457)); Sơ đồ Bản thử trực tiếp JavaScript có thể xử lý bao nhiêu chữ số?Độ chính xác của số nguyên
. up to 15 digits.
1e6 trong JavaScript là gì?Nếu chúng ta đếm các số 0 trong 0. 000001 , có 6 cái. Vì vậy, tất nhiên đó là 1e-6 .
Làm cách nào để lấy tổng các chữ số trong JavaScript?Để tìm tổng các chữ số trong JavaScript, có hai cách tiếp cận, đầu tiên là chia số và cộng phần còn lại để có tổng, and the other is by using split and reduce methods in JavaScript. |