Python xác định vị trí thập phân
Bài toán làm tròn đầu vào và đầu ra đã được Python 3 giải quyết dứt điểm. 1 và bản sửa lỗi cũng được nhập vào Python 2. 7. 0 Show
Nội dung chính Hiển thị
Các số được làm tròn có thể được chuyển đổi ngược lại giữa float và string qua lại. 9
Loại 0 không cần thiết để lưu trữ nữaKết quả của các phép tính số học phải được làm tròn lại vì lỗi làm tròn có thể tích lũy độ không chính xác cao hơn mức có thể xảy ra sau khi phân tích cú pháp một số. Điều đó không được khắc phục bằng thuật toán 1 cải tiến (Python >= 3. 1, >= 2. 7. 0)
The output string function 2 was rounded to 12 valid digits in Python < 2.7x and < 3.1, to prevent excessive invalid digits similar to unfixed repr() output. That was still insufficientl after subtraction of very similar numbers and it was too much rounded after other operations. Python 2.7 and 3.1 use the same length of str() although the repr() is fixed. Some old versions of Numpy had also excessive invalid digits, even with fixed Python. The current Numpy is fixed. Python versions >= 3.2 have the same results of str() and repr() function and also output of similar functions in Numpy.Bài kiểm tra
Tài liệuXem Ghi chú phát hành Python 2. 7 - Ngôn ngữ khác Thay đổi đoạn thứ tư
Vấn đề liên quan Thêm thông tin. Định dạng của 6 trước Python 2. 7 tương tự như 7 hiện tại. Cả hai loại đều sử dụng cùng độ chính xác kép 64 bit IEEE 754 với phần định trị 52 bit. Một sự khác biệt lớn là 8 được định dạng thường xuyên với số thập phân quá mức để không thể làm mất bit, nhưng không có số IEEE 754 hợp lệ nào tồn tại giữa 13. 949999999999999 và 13. 950000000000001. Kết quả không tốt và chuyển đổi 9 không thể đảo ngược với numpy. Mặt khác. 50 được định dạng sao cho mọi chữ số đều quan trọng; . Đơn giản. Nếu bạn có lẽ có một numpy. số float64, chuyển đổi nó thành số float bình thường để được định dạng cho con người, không phải cho bộ xử lý số, nếu không thì không cần thêm gì nữa với Python 2. 7+Python có một số tùy chọn để làm tròn thành một số nguyên. Nhưng nếu chúng ta muốn làm tròn đến một số chữ số thập phân, chẳng hạn như 2 chữ số thập phân thì sao? TRONG BÀI VIẾT NÀY
# Làm tròn giá trị Python đến hai chữ số thập phân (và hơn thế nữa)Mặc dù việc làm tròn thành một số nguyên là hữu ích nhưng vẫn có nhiều trường hợp chúng ta cần làm tròn tới một số chữ số thập phân nhất định. Ví dụ: tiền tệ được báo cáo tốt nhất với 2 chữ số thập phân. Và mức độ lỗi và tầm quan trọng thường sử dụng nhiều chữ số hơn, như 5 Python có một số cách để làm tròn chữ số thập phân
Hãy xem xét từng cách tiếp cận và mã Python mà chúng yêu cầu # Làm tròn số thập phân lên và xuống. vòng()Với hàm 51 của Python, chúng ta có thể làm tròn số thập phân lên và xuống. Hàm cần hai đối số cho điều đó. Đầu tiên là giá trị để làm tròn. Thứ hai là số chữ số sau dấu thập phân ( 53) để làm tròn thành (Lutz, 2013; Sweigart, 2015)Vì vậy, để làm tròn đến 2 chữ số thập phân, chúng tôi làm
# Thí dụ. làm tròn chữ số thập phân lên và xuốngĐể xem cách hoạt động của 51 trong thực tế, hãy cùng khám phá chương trình nhỏ sau 5Mã này trước tiên tạo năm biến dấu phẩy động. Mỗi cái có một vài số sau dấu thập phân ( 53). Chúng tôi lưu trữ các giá trị của chúng trong các biến 56 đến 57Sau đó, chúng tôi làm tròn từng số đến một số chữ số thập phân. Chúng tôi gọi hàm 51 với hai đối số. Đầu tiên là biến chúng ta vừa thực hiện. Thứ hai số thập phân để làm tròn đến. Ở đây chúng tôi sử dụng các giá trị 59 đến 70 cho điều đó. Chúng tôi lưu trữ các giá trị được làm tròn trong các biến mới ( 71 đến 72)Sau đó, hàm 73 của Python hiển thị cả giá trị gốc và giá trị được làm tròn. Với phương thức chuỗi 74, chúng tôi căn chỉnh giá trị ban đầu sang trái. Điều đó tạo ra một đầu ra giống như bảng đẹp. Như chúng ta có thể thấy từ đầu ra, mỗi giá trị được làm tròn chính xác 5# Làm tròn số thập phân lên trong PythonMột tùy chọn khác là luôn làm tròn các chữ số thập phân của một số lên. Đó là ví dụ những gì các công ty làm. thay vì làm tròn giá lên hoặc xuống, các giá trị như 75 luôn được làm tròn lên đến $4. 55Tuy nhiên, Python không có chức năng tích hợp cho điều đó. Nhưng chúng ta có thể tự tạo và tận dụng hàm 76. Khi chúng tôi làm như vậy, sử dụng chức năng trông như thế này 7Đây là cách chúng tôi viết mã hàm 77 đó 7Hàm này có hai tham số. giá trị cần làm tròn (________ 378) và số chữ số thập phân cần nhận (_______ 379). Khi tham số thứ hai đó không được đặt, nó sẽ mặc định là 70Mã của chức năng có hai phần. Đầu tiên xác nhận và xử lý tham số 79. Thứ hai thực hiện làm tròn thực tếĐể xác thực điều đó, chúng tôi sử dụng câu lệnh if xếp tầng của Python. Điều kiện đầu tiên có 72 xem tham số 79 có phải là số khác không phải là số nguyên ( 74). Khi đúng như vậy, chúng tôi tạo một 75 để thông báo cho người dùng rằng chức năng này được sử dụng sai cáchTiếp theo, chúng tôi kiểm tra xem 79 có dưới ( 77) không. Vì hàm không biết cách xử lý các vị trí thập phân âm, nên chúng tôi kích hoạt một 78 để thông báo điều này với người dùng của hàmBài kiểm tra 79 cuối cùng xem tham số 79 có bằng ( 11) 12 không. Khi hàm phải làm tròn một giá trị lên mà không có chữ số thập phân, chúng ta chỉ cần thực thi hàm 76 và làm tròn thành một số nguyênSau đó, chúng ta đến phần thứ hai của chức năng. Đây là nơi chúng tôi làm tròn thực tế đến vị trí thập phân. Nhưng trước tiên chúng ta xác định hệ số hiệu chỉnh. Để có được giá trị đó, chúng tôi tăng 14 thành sức mạnh của tham số 79. Chúng tôi lưu trữ kết quả trong biến 16Tiếp theo chúng ta gọi hàm 76. Bên trong dấu ngoặc đơn, chúng tôi chỉ định giá trị làm tròn lên ( 78) nhân với 16. Sau đó, chúng tôi chia kết quả làm tròn cho 16 để lấy lại số vị trí thập phân thích hợpGiả sử hàm phải làm tròn 11 đến 2 chữ số thập phân. Sau đó, mã đầu tiên nhân 11 với 13 (102). 76 sau đó làm tròn 15 thành số nguyên ( 16). Cuối cùng ta chia lại cho 13 được kết quả là hai chữ số thập phân. 18# Thí dụ. làm tròn đến 2 chữ số thập phânĐể xem cách tương tác với hàm 77 tùy chỉnh đó diễn ra như thế nào, hãy sử dụng nó trong một chương trình nhỏ 1Chương trình này trước tiên nhập mô-đun 00. Điều đó làm cho chức năng 76 có sẵn cho chức năng tùy chỉnh của chúng tôi, mà chúng tôi sao chép/dán vào chương trình tiếp theoSau đó, chúng tôi thực hiện năm biến ( 56 đến 57). Mỗi cái có một giá trị dấu phẩy động với một vài chữ số thập phân. Hãy làm tròn giá trị của chúngVì điều đó, chúng tôi gọi hàm 77 nhiều lần. Chúng tôi cung cấp cho nó một đối số. giá trị để làm tròn. Sau đó, hàm sẽ tự động sử dụng hai chữ số thập phân để làm tròn. Chúng tôi đặt các giá trị được làm tròn trong các biến 71 đến 72Hàm 73 sau đó xuất giá trị ban đầu và được làm tròn. Đây là cách hàm làm tròn mọi biến đến hai chữ số thập phân 1# Làm tròn số thập phân xuống trong PythonCách thứ ba để xử lý các chữ số thập phân là luôn làm tròn xuống. Đây là những gì một giáo viên nghiêm khắc có thể sử dụng. thay vì làm tròn 08 và 09 lên, người đó làm tròn xuống thành 10 và 11Không có chức năng tích hợp sẵn nào trong Python cho kiểu làm tròn đó. Nhưng chúng ta có thể tự xây dựng và tận dụng hàm 12. Sử dụng một chức năng tùy chỉnh như vậy trông giống như 0Điều đó hoạt động tốt. Bây giờ hãy viết mã chức năng tùy chỉnh đó 1Phần lớn chức năng này giống với chức năng tùy chỉnh khác ( 77) mà chúng ta đã thảo luận trước đóSự khác biệt chính là bây giờ chúng ta sử dụng chức năng 12. Hàm này làm tròn tham số 78 nhân với biến 16 xuống. Sau đó, chúng tôi chia lại với 16 để có đúng số chữ số thập phânGiả sử chúng ta yêu cầu hàm làm tròn 18 xuống 2 chữ số thập phân. Sau đó, mã đầu tiên nhân giá trị đó với 13. ________ 512 sau đó làm tròn ________ 521 xuống một số nguyên (_______ 522). Khi chúng tôi chia lại cho 13, chúng tôi nhận được số chữ số thập phân thích hợp. 24# Thí dụ. làm tròn đến 2 chữ số thập phânHãy xem chức năng trên hoạt động như thế nào trong thực tế. Chương trình nhỏ này có chức năng làm tròn xuống 5 giá trị khác nhau 2Trước tiên, chúng tôi nhập mô-đun 00. Bằng cách đó, hàm 26 tùy chỉnh có thể sử dụng 12. Sau đó chúng tôi chèn chức năng tùy chỉnh đóSau đó, chúng tôi thực hiện năm biến ( 56 đến 57). Mỗi người giữ một giá trị với số thập phân để làm tròn xuống. Làm tròn đó là những gì chúng ta làm tiếp theoVì vậy, chúng tôi liên tục thực hiện 26. Mỗi lần chúng ta cung cấp cho hàm hai đối số. giá trị cần làm tròn và số chữ số thập phân cần giữ. Chúng tôi đưa kết quả vào các biến mới (______371 đến 72)Đoạn mã cuối cùng đưa ra kết quả với hàm 73. Chúng tôi căn trái giá trị ban đầu bằng phương pháp 74 và bao gồm cả giá trị được làm tròn. Khi đầu ra hiển thị, mỗi giá trị được làm tròn xuống một số vị trí thập phân nhất định 3# Làm tròn số thập phân của danh sách và mảng PythonCác ví dụ trên luôn làm tròn một giá trị tại một thời điểm. Tuy nhiên, đôi khi chúng ta có một dãy có các giá trị mà chúng ta muốn làm tròn thành một số chữ số thập phân. Hãy xem cách thực hiện trong Python # Làm tròn danh sách đến vị trí thập phân với khả năng hiểu danh sáchMột tùy chọn là làm tròn mọi giá trị bằng cách hiểu danh sách. Điều này chỉ cần một chút mã và chạy hiệu quả. Khả năng hiểu danh sách hoạt động tốt nhất khi mã của bạn không quá phức tạp. Các giá trị làm tròn đơn giản đáp ứng dấu đó Đây là một ví dụ nhanh 4Danh sách 35 chúng tôi tạo ở đây nhận các giá trị của nó từ cách hiểu danh sách. Sự hiểu biết đó thực thi biểu thức 36 cho mọi giá trị được tạo bởi vòng lặp 52 nội tuyến. 38. Đó là cách chúng tôi duyệt qua danh sách 39 ban đầu, từng phần tử mộtĐây là một chương trình nhỏ làm tròn mọi giá trị trong danh sách 5Trước tiên, chúng tôi nhập mô-đun 00. Sau đó, chúng tôi chèn các hàm 26 và 77 mà chúng tôi đã thực hiện trước đó trong bài viết nàyTiếp theo, chúng tôi tạo một danh sách với các số. Danh sách 39 đó có 6 giá trị dấu phẩy động. Sau đó, chúng tôi làm tròn từng giá trị trong danh sách đó. Chúng tôi sử dụng ba cách hiểu danh sách khác nhau cho điều đóVòng đầu tiên làm tròn mọi giá trị danh sách đến hai chữ số thập phân (lên và xuống) bằng hàm 51. Chúng tôi đặt các giá trị được làm tròn đó vào một danh sách mới, 45Cách hiểu danh sách thứ hai có hàm 77 làm tròn đến hai chữ số thập phân. Danh sách mới mà điều này trả về là những gì chúng tôi lưu trữ trong 47. Mức độ hiểu danh sách thứ ba và cuối cùng làm tròn xuống hai chữ số thập phân ( 26). Kết quả của sự hiểu biết đó được lưu trữ trong danh sách 49Đoạn mã cuối cùng của chương trình xuất ra cả bốn danh sách với hàm 73. Đây là cách các giá trị được làm tròn đó trông như thế nào 6Trong ví dụ trên, chúng tôi đã tạo danh sách mới với khả năng hiểu danh sách. Nếu bạn không cần giữ các giá trị danh sách ban đầu, thì khả năng hiểu danh sách cũng có thể ghi đè lên danh sách hiện có. Để làm như vậy, chúng tôi đặt giá trị của danh sách thành kết quả của việc hiểu danh sách 7# Làm tròn danh sách đến vị trí thập phân với vòng lặp for của PythonCách thứ hai để làm tròn giá trị danh sách là dùng vòng lặp 52. Điều này đòi hỏi nhiều mã hơn một chút so với khả năng hiểu danh sách, nhưng có nhiều khả năng hơn và dễ đọc hơn trong các tình huống phức tạpNhư một ví dụ nhanh 8Danh sách 52 chúng tôi tạo ở đây bắt đầu trống ( 53). Nhưng bên trong vòng lặp 52, chúng tôi điền vào danh sách đó các giá trị. Đối với điều đó, chúng tôi gọi phương thức 55 trong danh sách và chuyển vào giá trị được làm tròn từ danh sách ban đầu ( 36)Chương trình nhỏ này làm tròn các giá trị danh sách với 52 9Trước tiên, chúng tôi nhập lại mô-đun 00. Sau đó, chúng tôi sao chép/dán các hàm 26 và 77 mà chúng tôi đã thực hiện trước đó trong bài viết nàySau đó, chúng tôi tạo một danh sách với một số giá trị dấu phẩy động, cả dương và âm. Sau đó, chúng tôi mã ba danh sách trống ( 53). 45, 47 và 49. Chúng sẽ giữ các giá trị được làm trònĐể thực hiện điều đó, chúng tôi tạo một vòng lặp 52. Vòng lặp này lặp qua mọi giá trị trong danh sách 39. Trong mỗi chu kỳ vòng lặp, giá trị danh sách hiện tại được truy cập bằng biến vòng lặp 67. Bên trong vòng lặp đó, chúng tôi nối thêm một giá trị được làm tròn vào từng danh sách trong số ba danh sách bằng phương thức 55 của PythonĐoạn mã cuối cùng của chương trình sau đó xuất ra danh sách ban đầu và các dẫn xuất được làm tròn của nó. Đây là những gì hiển thị 0Không cần các giá trị danh sách ban đầu? . Thay vào đó, bạn có thể ghi đè lên cái hiện có tại chỗ. Một chức năng hữu ích cho điều đó là 69 của Python. Ví dụ 1# Làm tròn mảng Python đến 2 chữ số thập phânTất nhiên chúng ta cũng có thể làm tròn các tập hợp khác ngoài danh sách. Đây là cách chúng tôi làm tròn mọi giá trị trong một mảng Python đến 2 chữ số thập phân 2Trước tiên, chúng tôi nhập hàm tạo 70 từ mô-đun 71. Sau đó, chúng tôi tạo một mảng với các giá trị dấu phẩy động. Chúng tôi đặt tên cho mảng đó là 39Sau đó, chúng tôi xây dựng một mảng thứ hai. Cái này có các giá trị từ mảng ban đầu được làm tròn đến 2 chữ số thập phân. Để thực hiện điều đó, chúng tôi sử dụng cách hiểu danh sách. Làm tròn mỗi giá trị thành hai chữ số thập phân ( 36). Chúng tôi đặt tên cho mảng mới, được làm tròn đó là 35Hàm 73 sau đó xuất ra mảng ban đầu và được làm tròn. Như chúng ta có thể biết, mỗi giá trị được làm tròn đúng đến hai chữ số thập phân 3Bạn không cần giữ các giá trị mảng ban đầu? . Đây là cách 4# Làm tròn mảng NumPy đến hai chữ số thập phânTất nhiên chúng ta cũng có thể làm tròn giá trị của các mảng khác. Một ví dụ là những thứ từ gói lập trình số NumPy cho Python. Để làm tròn một mảng NumPy đến hai chữ số thập phân, chúng tôi làm 5Trước tiên, chúng tôi nhập mô-đun 76. Sau đó, chúng tôi tạo một mảng NumPy với hàm 77. Mảng đó có một số giá trị dấu phẩy độngSau đó, chúng tôi làm tròn mảng ban đầu thành hai chữ số thập phân. Đối với điều đó, chúng tôi gọi hàm 78 với hai đối số. Đầu tiên là mảng có giá trị để làm tròn. Thứ hai là số chữ số thập phân để làm tròn thành. Chúng tôi lưu trữ mảng mà hàm trả về trong biến 35Đoạn mã cuối cùng xuất ra cả mảng ban đầu và mảng được làm tròn. Điều đó cho thấy cách các giá trị được làm tròn độc đáo đến 2 chữ số thập phân 6Hàm 78 làm tròn lên và xuống. Để luôn làm tròn lên hoặc luôn làm tròn xuống, chúng ta phải sử dụng các hàm tùy chỉnh 77 và 26Khi chúng ta sử dụng các hàm đó để hiểu danh sách, chúng có thể làm tròn từng giá trị từ một mảng NumPy. Ví dụ 7ĐỌC THÊM
# Bản tóm tắtCó ba cách làm tròn số đến một số chữ số thập phân nhất định. Để làm tròn lên và xuống, chúng tôi sử dụng hàm 51 của Python. Đối số đầu tiên chúng ta đưa ra cho hàm đó là số cần làm tròn. Đối số thứ hai số vị trí thập phân để làm tròn thànhPython không có chức năng luôn làm tròn các chữ số thập phân lên ( 84 thành 85). Nhưng khi chúng ta tận dụng hàm 76 trong một hàm tùy chỉnh, chúng ta có thể dễ dàng tự thực hiện điều đóKhông có hàm nào luôn làm tròn các chữ số thập phân xuống ( 87 trở thành 88). Nhưng khi chúng ta bọc hàm 12 trong một hàm tùy chỉnh, chúng ta có thể tự tạo hành vi đóĐể làm tròn mọi giá trị trong danh sách hoặc mảng, chúng ta có thể sử dụng vòng lặp hiểu danh sách hoặc vòng lặp 52. Cái đầu tiên nhỏ gọn và cái thứ hai dễ làm việc hơnNgười giới thiệuLutz, M. (2013). Học Python (Phiên bản thứ 5). Sebastopol, CA. Truyền thông O'Reilly Sweigart, A. (2015). Tự động hóa những thứ nhàm chán với Python. Lập trình thực tế cho người mới bắt đầu. San Francisco, CA. Không ép tinh bột con trăn. tổ chức (n. d. ). Chức năng tích hợp sẵn. Truy cập ngày 8 tháng 11 năm 2019, từ https. // tài liệu. con trăn. org/3/thư viện/chức năng. html Cập nhật lần cuối vào ngày 9 tháng 9 năm 2020 (xuất bản ngày 20 tháng 12 năm 2019) « Tất cả các bài toán Python Làm thế nào để bạn làm tròn đến 5 chữ số thập phân?Nói một cách đơn giản, nếu chữ số cuối cùng nhỏ hơn 5, hãy làm tròn chữ số trước đó xuống . Tuy nhiên, nếu lớn hơn hoặc bằng 5 thì bạn nên làm tròn chữ số trước đó lên. Vì vậy, nếu số bạn sắp làm tròn theo sau là 5, 6, 7, 8, 9 thì hãy làm tròn số lên. Và nếu theo sau nó là 0, 1, 2, 3, 4 thì làm tròn số xuống. Làm cách nào để bạn đặt số vị trí thập phân trong Python?Sử dụng str. . giá trị = 3. 3333333333 formatted_string = "{. 2f}". định dạng (giá trị) định dạng đến hai chữ số thập phân float_value = float(formatted_string) in (float_value) Bạn dùng như thế nào. 2f bằng Python?2f là trình giữ chỗ cho số dấu phẩy động. Vì vậy, %d được thay thế bằng giá trị đầu tiên của bộ i. e 12 và %. 2f được thay thế bằng giá trị thứ hai i. e150. 87612. . Định dạng chuỗi Python |