Hướng dẫn dùng matlab rounding python

  • Chung quanh()
  • Cú pháp:
      • Thông số
      • Sự mô tả
      • Giá trị trả lại
  • 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ụ:
    • ví dụ 1
    • Đầu ra:
  • Ví dụ: Làm tròn số Phao
  • Ví dụ: Làm tròn giá trị số nguyên
  • Ví dụ: Làm tròn số âm
  • Ví dụ: Mảng tròn Numpy
  • Ví dụ: Mô-đun thập phân
      • Thí dụ:
    • Bản tóm tắt:

Nội dung chính

Nội dung chính

  • Chung quanh()
  • 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ụ: Làm tròn số Phao
  • Ví dụ: Làm tròn giá trị số nguyên
  • Ví dụ: Làm tròn số âm
  • Ví dụ: Mảng tròn Numpy
  • Ví dụ: Mô-đun thập phân
  • Bản tóm tắt:

  • Chung quanh()
  • 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ụ: Làm tròn số Phao
  • Ví dụ: Làm tròn giá trị số nguyên
  • Ví dụ: Làm tròn số âm
  • Ví dụ: Mảng tròn Numpy
  • Ví dụ: Mô-đun thập phân
  • Bản tóm tắt:

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ố

  • float_num: số thực được làm tròn.
  • num_of_decimals: (tùy chọn) Số lượng 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 đến số nguyên gần nhất.

Sự mô tả

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

  • số được làm tròn và
  • các vị trí thập phân cần xem xét trong 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à 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

  • > = 5 hơn + 1 sẽ được thêm vào giá trị cuối cùng
  • <5 so với giá trị cuối cùng sẽ trả về vì nó lên đến các vị trí thập phân được đề cập.

Giá trị trả lại

Nó 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ụ 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("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ố Phao

Trong 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ên

Nế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ố âm

Hã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 Numpy

Là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ân

Ngoà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:

  • ROUND_CEILING: nó sẽ tròn về phía Vô cực,
  • ROUND_DOWN: nó sẽ làm tròn giá trị về 0,
  • ROUND_FLOOR: nó sẽ tròn về phía -Infinity,
  • ROUND_HALF_DOWN: nó sẽ làm tròn đến giá trị gần nhất và tiến về 0,
  • ROUND_HALF_EVEN: nó sẽ làm tròn đến gần nhất với giá trị là 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ị khác 0
  • ROUND_UP: nó sẽ làm tròn khi giá trị sẽ biến mất từ ​​0.

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:

  • Round (float_num, Num_of_decimals) là một hàm tích hợp sẵn có trong python. Nó sẽ trả về cho bạn số thực sẽ được làm tròn đến chữ số thập phân được đưa ra làm đầu vào.
  • float_num: số thực được làm tròn.
  • Num_of_decimals: Đây là số lượng các số thập phân được xem xét khi làm tròn.
  • Nó 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.