Làm thế nào để bạn làm tròn một số lên trong python?

Ghi chú. Hành vi của

round(number, ndigits)
8 đối với số float có thể gây ngạc nhiên. Thông báo
round(number, ndigits)
6 cung cấp cho
round(number, ndigits)
7 thay vì
round(number, ndigits)
8 dự kiến. Đây không phải là một lỗi. đó là kết quả của thực tế là hầu hết các phân số thập phân không thể được biểu diễn chính xác dưới dạng số float

Khi số thập phân

round(number, ndigits)
9 được chuyển đổi thành số dấu phẩy động nhị phân, nó lại được thay thế bằng một xấp xỉ nhị phân, có giá trị chính xác là

2.67499999999999982236431605997495353221893310546875

Do đó, nó được làm tròn xuống 2. 67

Nếu bạn đang ở trong tình huống cần độ chính xác này, hãy cân nhắc sử dụng mô-đun

# for integers


# for floating point


# even choice
0, được thiết kế cho số học dấu phẩy động

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

  • Chung quanh()
  • cú pháp
  • Làm tròn có thể có bao nhiêu tác động?
  • Thí dụ. Làm tròn số float
  • Thí dụ. Làm tròn giá trị số nguyên
  • Thí dụ. Làm tròn số âm
  • Thí dụ. Mảng Numpy tròn
  • Thí dụ. Mô-đun thập phân

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

________số 8

đầ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

round(number, ndigits)
0

đầu ra

round(number, ndigits)
1

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

round(number, ndigits)
2

đầu ra

round(number, ndigits)
3

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

round(number, ndigits)
4

đầu ra

round(number, ndigits)
5

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

Có chức năng RoundUp trong Python không?

Hàm Python round() . Số thập phân mặc định là 0, nghĩa là hàm sẽ trả về số nguyên gần nhất.

Python có làm tròn 0 không. 5 tăng hay giảm?

Trong Python, hàm round() làm tròn lên hay xuống? . Dành cho . Cho =0. 5, hàm round() làm tròn số về số chẵn gần nhất.

Python int làm tròn lên hay xuống?

Trước tiên, bạn phải đánh giá xem số đó có bằng số nguyên của nó hay không, luôn làm tròn xuống . Nếu kết quả là True, bạn trả về số, nếu không, trả về số nguyên(số) + 1.

Round() có làm tròn lên hay xuống không?

Làm tròn, Làm tròn và Làm tròn . Mặt khác, hàm này làm tròn xuống. RoundDown luôn làm tròn xuống số thấp hơn trước đó, về 0. RoundUp luôn làm tròn đến số cao hơn tiếp theo, cách xa số 0. Round rounds up if the next digit is 5 or higher. Otherwise, this function rounds down. RoundDown always rounds down to the previous lower number, towards zero. RoundUp always rounds up to the next higher number, away from zero.