Hướng dẫn dùng matlab rounding python
Nội dung chính Show Nội dung chính
Chung quanh()Round () là một hàm tích hợp sẵn có trong python. Nó sẽ trả về cho bạn một số thực sẽ được làm tròn đến các chữ số thập phân được đưa ra làm đầu vào. Nếu các vị trí thập phân được làm tròn không được chỉ định, nó được coi là 0 và nó sẽ làm tròn đến số nguyên gần nhất. Trong Hướng dẫn Python này, bạn sẽ học: Cú pháp:round(float_num, num_of_decimals) Thông số
Sự mô tảPhương thức round () nhận hai đối số
Đối số thứ hai là tùy chọn và mặc định là 0 khi không được chỉ định, và trong trường hợp đó, nó sẽ làm tròn thành số nguyên gần nhất và kiểu trả về cũng sẽ là số nguyên. Khi các vị trí thập phân, tức là đối số thứ hai, có mặt, nó sẽ làm tròn đến số vị trí đã cho. Kiểu trả về sẽ là float. Nếu số sau vị trí thập phân đã cho
Giá trị trả lạiNó sẽ trả về một giá trị số nguyên nếu không cung cấp num_of_decimals và một giá trị float nếu num_of_decimals được cung cấp. Xin lưu ý rằng giá trị sẽ được làm tròn thành +1 nếu giá trị sau dấu thập phân> = 5, nếu không giá trị sẽ trả về giá trị lên đến các vị trí thập phân được đề cập. Làm tròn có thể có bao nhiêu tác động? (Làm tròn so với Cắt bớt)Ví dụ tốt nhất để cho thấy tác động của việc làm tròn là đối với thị trường trao đổi chứng khoán. Trong quá khứ, tức là vào năm 1982, Sở giao dịch chứng khoán Vancouver (VSE): được sử dụng để cắt ngắn giá trị cổ phiếu thành ba chữ số thập phân trên mỗi giao dịch. Nó được thực hiện gần 3000 lần mỗi ngày. Việc cắt bớt tích lũy dẫn đến mất khoảng 25 điểm mỗi tháng. Dưới đây là một ví dụ về việc cắt bớt các giá trị so với làm tròn. Hãy coi các số dấu phẩy động được tạo bên dưới là giá trị cổ phiếu. Ngay bây giờ, tôi đang tạo nó cho một loạt các 1.000.000 giây từ 0,01 đến 0,05. Ví dụ:arr = [random.uniform(0.01, 0.05) for _ in range(1000000)] Để cho thấy tác động của việc làm tròn, tôi đã viết một đoạn mã nhỏ, trong đó lúc đầu, bạn cần sử dụng các số chỉ có 3 chữ số thập phân, tức là cắt bớt số sau 3 chữ số thập phân. Tôi có tổng giá trị ban đầu, tổng giá trị đến từ các giá trị bị cắt bớt và sự khác biệt giữa giá trị gốc và giá trị bị cắt ngắn. Trên cùng một bộ số, tôi đã sử dụng phương pháp round () lên đến 3 chữ số thập phân và tính tổng và hiệu giữa giá trị gốc và giá trị làm tròn. Đây là ví dụ và kết quả ví dụ 1import random def truncate(num): return int(num * 1000) / 1000 arr = [random.uniform(0.01, 0.05) for _ in range(1000000)] sum_num = 0 sum_truncate = 0 for i in arr: sum_num = sum_num + i sum_truncate = truncate(sum_truncate + i) print("Testing by using truncating upto 3 decimal places") print("The original sum is = ", sum_num) print("The total using truncate = ", sum_truncate) print("The difference from original - truncate = ", sum_num - sum_truncate) print("nn") print("Testing by using round() upto 3 decimal places") sum_num1 = 0 sum_truncate1 = 0 for i in arr: sum_num1 = sum_num1 + i sum_truncate1 = round(sum_truncate1 + i, 3) print("The original sum is =", sum_num1) print("The total using round = ", sum_truncate1) print("The difference from original - round =", sum_num1 - sum_truncate1) Đầu ra:Testing by using truncating upto 3 decimal places The original sum is = 29985.958619386867 The total using truncate = 29486.057 The difference from original - truncate = 499.9016193868665 Testing by using round() up to 3 decimal places The original sum is = 29985.958619386867 The total using round = 29985.912 The difference from original - round = 0.04661938686695066 Sự khác biệt giữa ban đầu và sau khi cắt ngắn là 499.9016193868665 và từ vòng, nó là 0.04661938686695066 Sự khác biệt dường như rất lớn và ví dụ cho thấy phương thức làm tròn () như thế nào giúp tính toán gần với độ chính xác. Ví dụ: Làm tròn số PhaoTrong chương trình này, chúng ta sẽ xem cách làm tròn số từ trên số nổi # testing round() float_num1 = 10.60 # here the value will be rounded to 11 as after the decimal point the number is 6 that is >5 float_num2 = 10.40 # here the value will be rounded to 10 as after the decimal point the number is 4 that is <=5 float_num3 = 10.3456 # here the value will be 10.35 as after the 2 decimal points the value >=5 float_num4 = 10.3445 #here the value will be 10.34 as after the 2 decimal points the value is <5 print("The rounded value without num_of_decimals is :", round(float_num1)) print("The rounded value without num_of_decimals is :", round(float_num2)) print("The rounded value with num_of_decimals as 2 is :", round(float_num3, 2)) print("The rounded value with num_of_decimals as 2 is :", round(float_num4, 2)) Đầu ra: The rounded value without num_of_decimals is : 11 The rounded value without num_of_decimals is : 10 The rounded value with num_of_decimals as 2 is : 10.35 The rounded value with num_of_decimals as 2 is : 10.34 Ví dụ: Làm tròn giá trị số nguyênNếu bạn tình cờ sử dụng round () trên một giá trị số nguyên, nó sẽ chỉ trả lại cho bạn số đó mà không có bất kỳ thay đổi nào. # testing round() on a integer num = 15 print("The output is", round(num)) Đầu ra: The output is 15 Ví dụ: Làm tròn số âmHãy để chúng tôi xem một vài ví dụ về cách làm tròn hoạt động trên số âm # testing round() num = -2.8 num1 = -1.5 print("The value after rounding is", round(num)) print("The value after rounding is", round(num1)) Đầu ra: C:pythontest>python testround.py The value after rounding is -3 The value after rounding is -2 Ví dụ: Mảng tròn NumpyLàm thế nào để làm tròn các mảng numpy trong python? Để giải quyết vấn đề này, chúng ta có thể sử dụng mô-đun numpy và sử dụng phương thức numpy.round () hoặc numpy.around (), như thể hiện trong ví dụ bên dưới. Using numpy.round() # testing round() import numpy as np arr = [-0.341111, 1.455098989, 4.232323, -0.3432326, 7.626632, 5.122323] arr1 = np.round(arr, 2) print(arr1) Đầu ra: C:pythontest>python testround.py [-0.34 1.46 4.23 -0.34 7.63 5.12] Chúng tôi cũng có thể sử dụng numpy.around (), cho bạn kết quả tương tự như trong ví dụ bên dưới. Ví dụ: Mô-đun thập phânNgoài hàm round (), python có mô-đun thập phân giúp xử lý các số thập phân chính xác hơn. Mô-đun Thập phân đi kèm với các kiểu làm tròn, như được hiển thị bên dưới:
Trong hệ thập phân, phương thức quantize () giúp làm tròn đến một số vị trí thập phân cố định và bạn có thể chỉ định cách làm tròn sẽ được sử dụng, như thể hiện trong ví dụ bên dưới. Thí dụ:Sử dụng phương thức round () và decimal import decimal round_num = 15.456 final_val = round(round_num, 2) #Using decimal module final_val1 = decimal.Decimal(round_num).quantize(decimal.Decimal('0.00'), rounding=decimal.ROUND_CEILING) final_val2 = decimal.Decimal(round_num).quantize(decimal.Decimal('0.00'), rounding=decimal.ROUND_DOWN) final_val3 = decimal.Decimal(round_num).quantize(decimal.Decimal('0.00'), rounding=decimal.ROUND_FLOOR) final_val4 = decimal.Decimal(round_num).quantize(decimal.Decimal('0.00'), rounding=decimal.ROUND_HALF_DOWN) final_val5 = decimal.Decimal(round_num).quantize(decimal.Decimal('0.00'), rounding=decimal.ROUND_HALF_EVEN) final_val6 = decimal.Decimal(round_num).quantize(decimal.Decimal('0.00'), rounding=decimal.ROUND_HALF_UP) final_val7 = decimal.Decimal(round_num).quantize(decimal.Decimal('0.00'), rounding=decimal.ROUND_UP) print("Using round()", final_val) print("Using Decimal - ROUND_CEILING ",final_val1) print("Using Decimal - ROUND_DOWN ",final_val2) print("Using Decimal - ROUND_FLOOR ",final_val3) print("Using Decimal - ROUND_HALF_DOWN ",final_val4) print("Using Decimal - ROUND_HALF_EVEN ",final_val5) print("Using Decimal - ROUND_HALF_UP ",final_val6) print("Using Decimal - ROUND_UP ",final_val7) Đầu ra: Using round() 15.46 Using Decimal - ROUND_CEILING 15.46 Using Decimal - ROUND_DOWN 15.45 Using Decimal - ROUND_FLOOR 15.45 Using Decimal - ROUND_HALF_DOWN 15.46 Using Decimal - ROUND_HALF_EVEN 15.46 Using Decimal - ROUND_HALF_UP 15.46 Using Decimal - ROUND_UP 15.46 Bản tóm tắt:
|