Trước khi nói về chủ đề tiếp theo, chúng ta sẽ chuyển sang chủ đề về ký hiệu khoa học.
Ký hiệu khoa học là một cách viết tắt hữu ích để viết các số dài một cách ngắn gọn. Và mặc dù ban đầu ký hiệu khoa học có vẻ xa lạ, nhưng việc hiểu ký hiệu khoa học sẽ giúp bạn hiểu cách hoạt động của số dấu phẩy động, và quan trọng hơn, giới hạn của chúng là gì.
Các số trong ký hiệu khoa học có dạng sau: ý nghĩa x 10^số. Ví dụ, trong ký hiệu khoa học 1,2 x 10^4, 1,2 là phần ý nghĩa và 4 là số mũ. Vì 10^4 cho kết quả là 10.000, 1,2 x 10^4 cho kết quả là 12.000.
Theo quy ước, các số trong ký hiệu khoa học được viết với một chữ số trước dấu thập phân và phần còn lại của các chữ số sau đó.
Hãy xem xét khối lượng của Trái đất. Theo ký hiệu thập phân, chúng ta sẽ viết giá trị này là 5973600000000000000000000 kg. Đó là một con số thực sự lớn (quá lớn để vừa với một số nguyên 8 byte). Nó cũng khó đọc (đó là 19 hay 20 số không?). Ngay cả với các dấu phân cách (5,973,600,000,000,000,000,000,000,000,000), con số vẫn khó đọc.
Trong ký hiệu khoa học, nó sẽ được viết là 5,9736 x 10^24 kg, dễ đọc hơn nhiều. Ký hiệu khoa học có thêm lợi ích là giúp dễ dàng so sánh độ lớn của hai số thực lớn hoặc thực nhỏ chỉ bằng cách so sánh số mũ.
Bởi vì có thể khó nhập hoặc hiển thị số mũ trong C ++, chúng ta sử dụng chữ cái ‘e’ (hoặc đôi khi là ‘E’) để biểu thị phần “nhân 10 thành lũy thừa” của phương trình. Ví dụ: 1,2 x 10^4 sẽ được viết là 1,2e4 và 5,9736 x 10^24 sẽ được viết là 5,9736e24.
Đối với các số nhỏ hơn 1, số mũ có thể là số âm. Số 5e-2 tương đương với 5 * 10-2, là 5/10^-2 hoặc 0,05. Khối lượng của một electron là 9.1093822e-31 kg.
Nội dung chính
1. Cách chuyển đổi số sang ký hiệu khoa học
Sử dụng quy trình sau:
- Số mũ của bạn bắt đầu bằng 0.
- Trượt số thập phân để chỉ có một chữ số khác 0 ở bên trái của số thập phân.
- Mỗi vị trí bạn trượt số thập phân sang trái sẽ tăng số mũ lên 1.
- Mỗi vị trí bạn trượt số thập phân sang bên phải sẽ giảm số mũ đi 1.
- Cắt bỏ bất kỳ số 0 ở đầu (ở cuối bên trái của phần ý nghĩa)
- Chỉ cắt bỏ bất kỳ số không ở cuối (ở cuối bên phải của phần ý nghĩa) nếu số ban đầu không có dấu thập phân. Chúng ta giả định rằng chúng không quan trọng trừ khi được chỉ định khác.
Dưới đây là một số ví dụ:
Bắt đầu với: 42030
Trượt số thập phân sang trái 4 dấu cách: 4,2030e4
Không có số 0 ở đầu để cắt: 4.2030e4
Cắt bỏ các số không ở cuối: 4.203e4 (4 chữ số có nghĩa)
Bắt đầu với: 0,0078900
Trượt số thập phân sang phải 3 dấu cách: 0007.8900e-3
Cắt bỏ các số không ở đầu: 7.8900e-3
Không cắt bỏ các số không ở cuối: 7.8900e-3 (5 chữ số có nghĩa)
Bắt đầu với: 600.410
Trượt số thập phân sang trái 2 dấu cách: 6.00410e2
Không có số 0 ở đầu để cắt: 6.00410e2
Không cắt các số không ở cuối: 6.00410e2 (6 chữ số có nghĩa)
Đây là điều quan trọng nhất cần hiểu: Các chữ số trong phần ý nghĩa (phần trước chữ ‘e’) được gọi là chữ số có nghĩa. Số lượng các chữ số có nghĩa xác định độ chính xác của một số. Càng nhiều chữ số trong ý nghĩa, một con số càng chính xác.
2. Độ chính xác và các số không ở cuối sau số thập phân
Hãy xem xét trường hợp chúng ta yêu cầu hai trợ lý phòng thí nghiệm mỗi người cân cùng một quả táo. Một người quay lại và nói rằng quả táo nặng 87 gram. Người kia quay lại và nói rằng quả táo nặng 87,00 gram. Giả sử việc cân là chính xác. Trong trường hợp trước đây, trọng lượng thực của quả táo có thể nằm trong khoảng từ 86,50 đến 87,49 gam. Có thể chiếc cân chỉ chính xác đến từng gam. Hoặc có thể trợ lý của chúng ta làm tròn một chút. Trong trường hợp thứ hai, chúng ta tự tin về trọng lượng thực tế của quả táo ở một mức độ cao hơn nhiều (nó nặng từ 86,9950 đến 87,0049 gram, ít thay đổi hơn nhiều).
Vì vậy, trong ký hiệu khoa học tiêu chuẩn, chúng ta thích giữ các số không ở cuối sau dấu thập phân, bởi vì những chữ số đó truyền đạt thông tin hữu ích về độ chính xác của số.
Tuy nhiên, trong C ++, 87 và 87.000 được xử lý hoàn toàn giống nhau và trình biên dịch sẽ lưu trữ cùng một giá trị cho mỗi giá trị. Không có lý do kỹ thuật nào khiến chúng ta nên thích cái này hơn cái kia (mặc dù có thể có lý do khoa học, nếu bạn đang sử dụng code nguồn làm tài liệu).
Bây giờ chúng ta đã đề cập đến ký hiệu khoa học, chúng ta đã sẵn sàng đề cập đến các số dấu phẩy động.
Cài ứng dụng cafedev để dễ dàng cập nhật tin và học lập trình mọi lúc mọi nơi tại đây.
Nguồn và Tài liệu tiếng anh tham khảo:
Tài liệu từ cafedev:
- Full series tự học C++ từ cơ bản tới nâng cao tại đây nha.
- Ebook về C++ tại đây.
- Các series tự học lập trình MIỄN PHÍ khác
- Nơi liên hệ hợp tác hoặc quảng cáo cùng Cafedevn tại đây.
Nếu bạn thấy hay và hữu ích, bạn có thể tham gia các kênh sau của cafedev để nhận được nhiều hơn nữa:
Chào thân ái và quyết thắng!