Bạn thực sự có hai câu hỏi ở đây.
Tại sao mọi người cần toán học dấu phẩy động, dù sao?
Như Karl Bielefeldt chỉ ra, số dấu phẩy động cho phép bạn mô hình số lượng liên tục - và bạn tìm thấy chúng ở khắp mọi nơi - không chỉ trong thế giới thực, mà ngay cả những nơi như kinh doanh và tài chính.
Tôi đã sử dụng toán học dấu phẩy động trong nhiều lĩnh vực trong sự nghiệp lập trình của mình: hóa học, làm việc trên AutoCAD và thậm chí viết một trình giả lập Monte Carlo để dự đoán tài chính. Trên thực tế, có một anh chàng tên David E. Shaw đã sử dụng các kỹ thuật mô hình khoa học dựa trên dấu phẩy động được áp dụng cho Phố Wall để kiếm tiền tỷ.
Và, tất nhiên, có đồ họa máy tính. Tôi tham khảo về việc phát triển kẹo mắt cho giao diện người dùng và cố gắng làm điều đó ngày nay mà không có sự hiểu biết vững chắc về dấu phẩy động, lượng giác, tính toán và đại số tuyến tính, sẽ giống như thể hiện một cuộc đấu súng với máy bỏ túi.
Tại sao bất cứ ai cũng cần một cái phao so với một đôi ?
Với các biểu diễn tiêu chuẩn của IEEE 754, float 32 bit cung cấp cho bạn khoảng 7 chữ số thập phân có độ chính xác và số mũ trong phạm vi 10 -38 đến 10 38 . Nhân đôi 64 bit cung cấp cho bạn khoảng 15 chữ số thập phân có độ chính xác và số mũ trong phạm vi 10 -307 đến 10 307 .
Có vẻ như một chiếc phao sẽ đủ cho những gì mà bất kỳ ai cũng cần, nhưng thực tế không phải vậy. Chẳng hạn, nhiều đại lượng trong thế giới thực được đo bằng hơn 7 chữ số thập phân.
Nhưng tinh tế hơn, có một vấn đề thông thường được gọi là "lỗi vòng". Biểu diễn dấu phẩy động nhị phân chỉ có giá trị đối với các giá trị có phần phân số có mẫu số là lũy thừa 2, như 1/2, 1/4, 3/4, v.v. Để biểu thị các phân số khác, như 1/10, bạn "làm tròn" giá trị cho phân số nhị phân gần nhất, nhưng nó hơi sai - đó là "lỗi vòng". Sau đó, khi bạn làm toán trên những con số không chính xác đó, sự không chính xác trong kết quả có thể tồi tệ hơn nhiều so với những gì bạn bắt đầu - đôi khi tỷ lệ lỗi nhân lên, hoặc thậm chí chồng chất theo cấp số nhân.
Dù sao, bạn càng phải làm việc với các chữ số nhị phân càng nhiều, thì biểu diễn nhị phân làm tròn của bạn sẽ càng gần với số bạn đang cố gắng biểu thị, do đó, lỗi vòng của nó sẽ nhỏ hơn. Sau đó, khi bạn làm toán trên nó, nếu bạn có nhiều chữ số để làm việc, bạn có thể thực hiện nhiều thao tác hơn trước khi lỗi vòng tích lũy chồng chất lên đến đâu là một vấn đề.
Trên thực tế, nhân đôi 64 bit với 15 chữ số thập phân của họ không đủ tốt cho nhiều ứng dụng. Tôi đã sử dụng các số dấu phẩy động 80 bit vào năm 1985 và bây giờ, IEEE xác định loại dấu phẩy động 128 bit (16 byte) mà tôi có thể tưởng tượng sử dụng.