Làm thế nào để bạn làm tròn toán học trong python?

Round() là một chức năng tích hợp sẵn với python. Nó sẽ trả về cho bạn một số float sẽ được làm tròn đến vị trí thập phân được cung cấp 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ố

  • float_num. số float được làm tròn
  • num_of_decimals. (tùy chọn) Số thập phân được xem xét khi làm tròn. Nó là tùy chọn và nếu không được chỉ định, nó sẽ mặc định là 0 và việc làm tròn được thực hiện thành số nguyên gần nhất

Sự mô tả

Phương thức round() nhận hai đối số

  • số cần làm tròn và
  • các vị trí thập phân cần xem xét khi làm tròn

Đố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à một số nguyên

Khi các vị trí thập phân, tôi. e. đố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 chữ số thập phân đã cho

  • >=5 so với + 1 sẽ được thêm vào giá trị cuối cùng
  • <5 than the final value will return as it is up to the decimal places mentioned.

Giá trị trả về

Nó sẽ trả về một giá trị số nguyên nếu num_of_decimals không được cung cấp và 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ị tương ứng với các vị trí thập phân được đề cập

Làm tròn có thể có bao nhiêu tác động?

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 chứng khoán. trong quá khứ tôi. e vào năm 1982, Sở giao dịch chứng khoán Vancouver (VSE). được sử dụng để cắt bớt giá trị cổ phiếu đến 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 ngắn tích lũy dẫn đến mất khoảng 25 điểm mỗi tháng

Một ví dụ về việc cắt bớt các giá trị so với làm tròn được hiển thị bên dưới

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 ra nó cho một loạt

1.000.000 giây giữa 0. 01 và 0. 05

ví dụ

arr = [random.uniform(0.01, 0.05) for _ in range(1000000)]

Để hiển thị 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ôi. e. cắt bớt số sau 3 chữ số thập phân

Tôi có tổng giá trị ban đầu, tổng số đến từ các giá trị bị cắt bớt và sự khác biệt giữa giá trị ban đầu và giá trị bị cắt bớt

Trên cùng một dãy số, tôi đã sử dụng phương thức round() đến 3 chữ số thập phân và tính tổng và hiệu giữa giá trị ban đầu và giá trị được làm tròn

Dưới đây là ví dụ và đầu ra

ví dụ 1

import 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("\n\n")
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 bản gốc và sau khi cắt bớt 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 cách phương thức round() giúp tính toán gần chính xác

Thí dụ. Làm tròn số float

Trong chương trình này, chúng ta sẽ xem cách làm tròn chữ trên số thực

# 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

Thí dụ. Làm tròn giá trị số nguyên

Nếu bạn tình cờ sử dụng round() trên một giá trị số nguyên, nó sẽ 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

Thí dụ. Làm tròn số âm

Hãy cho chúng tôi xem một số ví dụ về cách làm tròn hoạt động trên các số âm

________số 8

đầu ra

C:\pythontest>python testround.py
The value after rounding is -3
The value after rounding is -2

Thí dụ. Mảng Numpy tròn

Làm cách nào để làm tròn các mảng có nhiều mảng 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 numpy. round() hoặc numpy. around(), như trong ví dụ bên dưới

sử dụng numpy. vòng()

arr = [random.uniform(0.01, 0.05) for _ in range(1000000)]
0

đầu ra

arr = [random.uniform(0.01, 0.05) for _ in range(1000000)]
1

Chúng ta cũng có thể sử dụng numpy. around(), mang lại cho bạn kết quả tương tự như trong ví dụ bên dưới

Thí dụ. Mô-đun thập phân

Ngoài hàm round(), python còn có module decimal giúp xử lý 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ư hình bên dưới

  • ROUND_CEILING. nó sẽ tròn về phía Vô cực,
  • LÀM TRÒN XUỐNG. nó sẽ làm tròn giá trị về 0,
  • ROUND_FLOOR. nó sẽ quay về phía -Infinity,
  • ROUND_HALF_DOWN. nó sẽ làm tròn đến giá trị gần nhất tiến về 0,
  • ROUND_HALF_EVEN. nó sẽ làm tròn đến giá trị gần nhất với số nguyên chẵn gần nhất,
  • ROUND_HALF_UP. nó sẽ làm tròn đến gần nhất với giá trị đi từ 0
  • VÒNG_LÊN. nó sẽ làm tròn nơi giá trị sẽ đi từ 0

Ở dạng 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ư minh họa trong ví dụ bên dưới

Làm cách nào để làm tròn số trong Python?

Làm tròn số trong Python sử dụng hàm round() tích hợp sẵn . Hàm round() chấp nhận hai đối số là n và n chữ số, sau đó trả về số n sau khi làm tròn nó thành n chữ số.

vòng 7 là gì. 5 bằng Python?

Tương tự, chúng ta có thể thấy rằng 7. 5 được làm tròn thành 8 , giá trị chẵn gần nhất với 7. 5. Kỹ thuật tương tự được áp dụng khi các số dấu phẩy động được làm tròn trong python.

Python có làm tròn 0 không. 5 lên?

Vì vậy. 5 được làm tròn lên đối với giá trị dương và làm tròn xuống đối với giá trị âm. Chẳng hạn, cả hai vòng(0. 5) và làm tròn (-0. 5) trả về 0 , trong khi round(1. 5) cho 2 và làm tròn (-1. 5) cho -2. Hành vi Python này hơi khác so với cách làm tròn thường diễn ra.