Python làm tròn 0,5 lên hay xuống?

Hướng dẫn này về Làm tròn số trong Python giải thích các phương pháp khác nhau để làm tròn số với nhiều ví dụ mã lập trình

Máy tính ban đầu được phát minh ra để thực hiện các phép toán phức tạp và chúng tôi không bận tâm miễn là có liên quan đến các số nguyên, phép trừ, phép cộng và phép nhân. Tuy nhiên, mọi thứ trở nên khó đoán khi các điểm nổi và phép chia tham gia

Một trong những lý do cho sự không thể đoán trước của các điểm động hoặc phép chia này được đề cập trong tài liệu của Python. Con người chúng ta chủ yếu làm việc với hệ thập phân, có cơ số 10. Tuy nhiên, máy tính sử dụng và lưu trữ hệ thống nhị phân [0 và 1]

=> Kiểm tra TẤT CẢ các hướng dẫn về Python tại đây

Quay trở lại tài liệu của Python, đây là những gì nó phải nói;

Thật không may, 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 phân số nhị phân. Hệ quả là, nói chung, các số dấu phẩy động thập phân bạn nhập chỉ gần đúng với các số dấu phẩy động nhị phân thực sự được lưu trữ trong máy

FYI, đây là bản chất của dấu phẩy động nhị phân và không phải là lỗi trong Python. Vì vậy, hầu hết, nếu không muốn nói là tất cả các ngôn ngữ lập trình như Perl, C, C++, Java, Fortran thường không hiển thị số thập phân chính xác mà bạn mong đợi

Đề xuất đọc =>> Các kiểu dữ liệu tích hợp sẵn của Python- Không có và số

Bạn sẽ học được gì

Làm tròn số trong Python

Trong bài viết này, chúng ta sẽ tìm hiểu các cách làm tròn số khác nhau trong Python

Số dấu phẩy động

Bài viết này là tất cả về làm tròn số. Nhưng những con số nào?

Số dấu phẩy động về cơ bản là bất kỳ số nào có dấu thập phân chia số nguyên từ các phần phân số. Được biểu diễn dưới dạng độ chính xác kép 64 bit trong Python, nó có kiểu dữ liệu 'float' và cũng có thể được biểu diễn bằng các ký hiệu khoa học, với e hoặc E biểu thị lũy thừa 10. Ví dụ [1. 4E4 = 1. 4 x 104 = 14000]

Trong phần giới thiệu, chúng tôi đã đề cập rằng 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 phân số nhị phân. Hãy cùng xem ví dụ dưới đây

ví dụ 1. Tính không thể đoán trước của các số dấu phẩy động

>>> 0.1 + 0.1 + 0.1 # expected 0.3
0.30000000000000004
>>> 1/10
0.1
>>> 1/10 == 0.10000000000000001 # expected False
True
>>> format[0.1, '.17f'] # expland to 17 decimal places
'0.10000000000000001'

Từ ví dụ trên, dòng mã đầu tiên [thêm 0. 1s] không trả về kết quả như mong đợi là 0. 3. Ngoài ra, chúng ta thấy rằng 1/10 bằng 0. 1, nhưng đáng ngạc nhiên là toán tử đẳng thức trong dòng mã thứ ba trả về True. Tuy nhiên, dòng mã cuối cùng tiết lộ giá trị thực của 0. 1 trong 17 chữ số thập phân

Lý do đơn giản là cả hai kết quả chỉ là phân số nhị phân gần đúng nhất. Và thật thú vị, trong Python, có nhiều số thập phân khác nhau có cùng phân số nhị phân. Ví dụ, các số 0. 1 và 0. 10000000000000001 như chúng ta đã thấy ở trên

Ví dụ trên cho chúng ta thấy các số dấu phẩy động không chính xác như thế nào và do đó khó làm việc với. Đây là nơi mà việc làm tròn số có thể giúp chúng ta tiết kiệm rất nhiều bằng cách giảm thiểu các lỗi tính toán

Làm tròn số

Wikipedia định nghĩa làm tròn là thay thế một số bằng một giá trị gần đúng có biểu diễn ngắn hơn, đơn giản hơn hoặc rõ ràng hơn. Ví dụ, thay thế 4. 345 với 4. 3, 3. 67 với 4

Vẫn từ Wikipedia, người ta đề cập rằng việc làm tròn thường được thực hiện để có được giá trị dễ báo cáo và giao tiếp hơn so với giá trị ban đầu. Nhưng điều này thường đi kèm với lỗi làm tròn

Hầu hết chúng ta đều được dạy hai quy tắc đơn giản để áp dụng khi làm tròn số. Nếu chữ số sau chữ số thập phân mà chúng ta đang hướng tới nằm trong khoảng từ 0 đến 4, hãy làm tròn xuống [thêm 0], nếu nó nằm trong khoảng từ 5 đến 9, hãy làm tròn lên [thêm 1]

Kiểm tra sơ đồ dưới đây cho một cuộc biểu tình

Giả sử chúng ta có số dấu phẩy động 3. 45678 và chúng tôi muốn làm tròn nó đến n chữ số thập phân, trong trường hợp này là 3. Từ sơ đồ trên, chúng ta có 6 là số thập phân mục tiêu vì dịch chuyển dấu thập phân sang phải 3 lần sẽ là 346. 78. Số sau dấu thập phân, trong trường hợp này là 7, nằm trong khoảng từ 5 đến 9. Do đó, chúng tôi làm tròn lên bằng cách thêm 1 đến 6

Cuối cùng, chúng tôi loại bỏ tất cả các số sau dấu thập phân và đưa chúng trở lại vị trí bình thường, điều này mang lại cho chúng tôi 3. 457

Một trong những hàm tích hợp do Python cung cấp để xử lý các số làm tròn là hàm round[] [chi tiết bên dưới]

Chức năng round[] Python tích hợp

Hàm round[] là một hàm tích hợp sẵn của Python, nhận hai đối số số, số và một ndigit tùy chọn, sau đó trả về số, n được làm tròn thành độ chính xác nhất định bằng chữ số thập phân, ndigit

Nói cách khác, nó làm tròn số đến bội số gần nhất của 10 chữ số

cú pháp

round[number, [, ndigit]]
  • Nếu ndigit bị bỏ qua hoặc Không có, giá trị trả về sẽ là số nguyên gần nhất
  • ndigit có thể âm, điều này có thể không mang lại cho chúng tôi kết quả như mong đợi

Bây giờ chúng ta hãy xem một ví dụ cho thấy các cách khác nhau mà hàm round[] có thể được sử dụng

ví dụ 2. Sử dụng hàm round[]

def rounding_numbers[]:
    #ex_1 ndigits is None, which is same as no ndigit given
    number = 1.5 
    ndigits = None
    print["Round {} to {} ndigits: {}".format[number, ndigits, round[number, ndigits]]]

    #ex_2 no ndigits is given, which is same as ndigits = None
    number = 2.5
    print["Round {}: {}".format[number, round[number]]]

    #ex_3 round to 3 decimal places
    number = 3.45678
    ndigits = 3
    print["Round {} to {} ndigits: {}".format[number, ndigits, round[number, ndigits]]]

    #ex_4 round to zero decimal places
    number = 35.45678
    ndigits = 0
    print["Round {} to {} ndigits: {}".format[number, ndigits, round[number, ndigits]]]

    #ex_5 round to a nagative decimal place
    number = 12.56
    ndigits = -1
    print["Round {} to {} ndigits: {}".format[number, ndigits, round[number, ndigits]]]

if __name__ == '__main__':
    rounding_numbers[]

đầu ra

Trong ex_1 ở trên, chúng tôi đã xác định các chữ số của chúng tôi là Không có, điều này giống như không có chữ số nào cả

Trong ex_2, chúng ta có thể thấy rằng làm tròn 2. 5 đến số nguyên gần nhất cho 2 thay vì 3 như mong đợi

Điều này là do, như đã thấy trong sơ đồ trên, 2. 5 nằm ở giữa hai số nguyên gần nhau nhất, đó là;

Vì không có số nguyên gần nhất ở đây, Python sử dụng tiêu chuẩn IEEE 754 được gọi là làm tròn ngân hàng, làm tròn đến chữ số chẵn có nghĩa nhỏ nhất gần nhất. Vì vậy, giữa 3 và 2, chúng ta có 2 là chữ số chẵn nhỏ nhất có nghĩa

Trong ex_4, với nchữ số là 0, tất cả các chữ số sau dấu thập phân được thay thế bằng một số 0. Điều này xảy ra bất kể có bao nhiêu chữ số xuất hiện sau dấu thập phân. Nó giống như chuyển Không có hoặc không có chữ số nào cả. Điểm khác biệt duy nhất là với n chữ số bằng 0, kết quả trả về là float

Trong ex_5, chúng tôi đang làm tròn đến số thập phân âm. Vì nchữ số là -1 nên nó sẽ làm tròn số thành bội số gần nhất của 10-[-1] = 10

Từ sơ đồ trên, 12. 56 nằm giữa hai bội số;

Trong ex_6, kết quả không như mong đợi. Giá trị mong đợi là 2. 68 thay vì 2. 67. Sau này chúng ta sẽ thấy rằng đây là một trong những lĩnh vực mà mô-đun Decimal vượt trội hơn hàm round[]

Làm tròn với mô-đun toán học

Qua nhiều năm, các nhà toán học đã phát triển rất nhiều phương pháp làm tròn để giải quyết vấn đề làm tròn. Trong phần này, chúng ta sẽ đi qua một số phương pháp thường được sử dụng

#1] Cắt bớt

Đây là phương pháp làm tròn số đơn giản nhất. Ở đây, chúng tôi chỉ cần thay thế mọi chữ số sau vị trí chúng tôi muốn giữ bằng số không

Thư viện toán học có hàm trunc[] có thể cắt bớt các giá trị dấu phẩy động. Tuy nhiên, nó chỉ có thể cắt bớt thành số nguyên và không chấp nhận đối số để giữ nguyên số vị trí thập phân

Trong ví dụ dưới đây, chúng ta sẽ tùy chỉnh hàm này để nó có thể xét đến số chữ số thập phân

ví dụ 3. Hàm truncate[] được tùy chỉnh lấy đối số cho các vị trí thập phân để giữ lại

import math
def truncate[number, decimal=0]:
    tens = 10.0

    if not isinstance[decimal, int]:
        raise TypeError["Argument 'decimal' must be of type int"]

    if decimal == 0:
        return math.trunc[number]
    
    multiples = math.pow[tens, decimal] # tens ** decimal 
    return math.trunc[number * multiples] / multiples

if __name__ == '__main__':
    number = 435.3387743
    decimal_list = [0, 2, 3, 4, -1, -2]
    for decimal in decimal_list:
        print["Truncate {} to {} decimal: {}".format[number, decimal, truncate[number, decimal]]]

đầu ra

Tóm lại, nếu đối số thập phân được cung cấp và hợp lệ [không phải số float], trước tiên chúng ta nhân số đó với 10. 0n, trong đó n là số thập phân. Sau đó, chúng tôi cắt ngắn nó bằng phép toán. hàm trunc[]. Cuối cùng, chúng tôi chia nó với cùng 10. 0n. Số thập phân, n có thể âm để cắt bớt các chữ số ở bên trái dấu thập phân

#2] Làm tròn

Kỹ thuật này luôn làm tròn một số đến một số có chữ số lớn hơn hoặc bằng số đã cho

Mô-đun toán Python có chức năng làm tròn một số thành số nguyên gần nhất lớn hơn hoặc bằng số đã cho. Hàm này chỉ nhận một đối số. Tuy nhiên, giống như trong ví dụ 3, chúng ta sẽ xây dựng một hàm tùy chỉnh lấy số chữ số thập phân để giữ

Ví dụ 4. Hàm rounding_up[] được tùy chỉnh lấy đối số cho các vị trí thập phân để giữ lại

import math
def rounding_up[number, decimal=0]:
    tens = 10.0

    if not isinstance[decimal, int]:
        raise TypeError["Argument 'decimal' must be of type int"]

    if decimal == 0:
        return math.ceil[number]
    
    multiples = math.pow[tens, decimal] # tens ** decimal 
    return math.ceil[number * multiples] / multiples

if __name__ == '__main__':
    numbers = [1.2, 1.534, 33.2, 3356, -1.6]
    decimal_list = [0, 1, -1, -2, 0]
    for decimal, number in zip[decimal_list, numbers]:
        print["Round up {} to {} decimal: {}".format[number, decimal, rounding_up[number, decimal]]]

đầu ra

Trong đầu ra ở trên, làm tròn lên 1. 2 cho 2 vì số nguyên gần nhất với 1. 2 là 1 và 2 và 2 là lớn nhất. Đầu vào số thập phân âm làm tròn số ở bên trái dấu thập phân. Làm tròn -1. Vị trí thập phân từ 6 đến 0 cho -1 vì các số nguyên gần nhất là -1 và –2 và -1 xảy ra là lớn nhất

#3] Làm tròn xuống

Kỹ thuật này luôn làm tròn một số xuống một số có chữ số nhỏ hơn hoặc bằng số đã cho

Module toán Python có hàm làm tròn một số về số nguyên gần nhất, nhỏ hơn hoặc bằng số đã cho. Giống như ceil[], chức năng này không cho phép chúng tôi chỉ định số lượng vị trí thập phân để giữ

Ví dụ 5. Hàm rounding_down[] được tùy chỉnh lấy đối số cho các vị trí thập phân để giữ lại

import math
def rounding_down[number, decimal=0]:
    tens = 10.0

    if not isinstance[decimal, int]:
        raise TypeError["Argument 'decimal' must be of type int"]

    if decimal == 0:
        return math.floor[number]
    
    multiples = math.pow[tens, decimal] # tens ** decimal 
    return math.floor[number * multiples] / multiples

if __name__ == '__main__':
    numbers = [1.2, 1.534, 33.2, 3356, -1.6]
    decimal_list = [0, 1, -1, -2, 0]
    for decimal, number in zip[decimal_list, numbers]:
        print["Round down {} to {} decimal: {}".format[number, decimal, rounding_down[number, decimal]]]

đầu ra

#4] Làm tròn một nửa

Chiến lược này là phương pháp làm tròn phổ biến, giống như làm tròn lên Ngoài ra, nó phá vỡ các ràng buộc bằng cách làm tròn lên. Nghĩa là, nửa giá trị của x luôn được làm tròn lên

Trong chiến lược này, một chữ số được kiểm tra để xác định hướng làm tròn. Sau khi dịch chuyển dấu thập phân đi 10-n như chúng ta đã làm đối với các ví dụ trên, chúng ta điều tra chữ số sau dấu thập phân đã dịch chuyển để biết liệu nó có nhỏ hơn hoặc lớn hơn hoặc bằng 5 hay không

Điều này chủ yếu được thực hiện bằng cách thêm 0. 5 vào giá trị đã dịch chuyển, giá trị này sẽ thêm 1 vào phần nguyên của giá trị đã dịch chuyển nếu lớn hơn 0. 5. Sau đó, chúng ta sử dụng hàm floor[] để lấy số nguyên lớn nhất

Ví dụ 6. Làm tròn một nửa hoặc Làm tròn một nửa về phía dương vô cực

import math
def rounding_half_up[number, decimal=0]:
    tens = 10.0
    half_way = 0.5

    if not isinstance[decimal, int]:
        raise TypeError["Argument 'decimal' must be of type int"]

    if decimal == 0:
        return math.floor[number + half_way]
    
    multiples = math.pow[tens, decimal] # tens ** decimal 
    return math.floor[number * multiples + half_way] / multiples

if __name__ == '__main__':
    numbers = [7.6, 7.5, 7.4, 1.23, 1.28, 1.25, -1.225]
    decimal_list = [0,0,0,1,1,1,2]
    for decimal, number in zip[decimal_list, numbers]:
        print["Round half up {} to {} decimal: {}".format[number, decimal, rounding_half_up[number, decimal]]]

đầu ra

#5] Làm tròn một nửa xuống

Chiến lược này ngược lại với Rounding Half Up. Nó phá vỡ các mối quan hệ bằng cách làm tròn đến số nhỏ hơn trong hai mối quan hệ. Nói tóm lại, nó làm cho 0. 5 đi xuống

Để đạt được điều này, sửa đổi mà chúng ta phải thực hiện đối với hàm rounding_half_up[] trong ví dụ 6 là thay đổi hàm floor[] thành ceil[]. Sau đó, chúng tôi trừ 0. 5 thay vì thêm

Ví dụ 7. Làm tròn xuống một nửa

import math
def rounding_half_down[number, decimal=0]:
    tens = 10.0
    half_way = 0.5

    if not isinstance[decimal, int]:
        raise TypeError["Argument 'decimal' must be of type int"]

    if decimal == 0:
        return math.ceil[number - half_way]
    
    multiples = math.pow[tens, decimal] # tens ** decimal 
    return math.ceil[number * multiples - half_way] / multiples

if __name__ == '__main__':
    numbers = [7.6, 7.5, 7.4, 1.23, 1.28, 1.25, -1.225]
    decimal_list = [0,0,0,1,1,1,2]
    for decimal, number in zip[decimal_list, numbers]:
        print["Round half down {} to {} decimal: {}".format[number, decimal, rounding_half_down[number, decimal]]]

đầu ra

#6] Làm tròn một nửa đến chẵn

Chiến lược này phá vỡ các ràng buộc bằng cách làm tròn đến số chẵn nhỏ nhất gần nhất. Tóm lại, nó làm tròn 0. 5 đến chữ số chẵn gần nhất

Chiến lược này được sử dụng bởi hàm round[] tích hợp để phá vỡ các ràng buộc và đó là quy tắc làm tròn mặc định trong tiêu chuẩn IEEE-754. Chúng tôi đã giải thích tại sao làm tròn 2. 5 trả về 2 thay vì 3 trong ví dụ 2 ở trên

Làm tròn với mô-đun thập phân

Mô-đun Decimal trong Python có một số lợi ích so với tích hợp sẵn round[]. Nó có một đại diện thập phân chính xác. Chúng ta đã thấy trong ví dụ 1, tính không thể đoán trước của các số dấu phẩy động, trong đó 0. 1 + 0. 1 + 0. 1 == 0. 3 trả về Sai. Với mô-đun Decimal, giá trị mong muốn được trả về

Ví dụ 8. Biểu diễn thập phân chính xác

________số 8

Hãy kiểm tra bối cảnh mặc định của mô-đun thập phân bằng cách gọi nó. phương thức getcontext[]

Ví dụ 9. Xem bối cảnh hiện tại của mô-đun Decimal

>>> import decimal
>>> decimal.getcontext[]
Context[prec=1, rounding=ROUND_HALF_EVEN, Emin=-999999, Emax=999999, capitals=1, clamp=0, flags=[Inexact, Rounded], traps=[InvalidOperation, DivisionByZero, Overflow]]

Chúng ta có thể nhận thấy rằng chiến lược làm tròn mặc định được sử dụng là làm tròn một nửa chẵn. Ngoài ra, độ chính xác mặc định là 26 chữ số. Tuy nhiên, lưu ý rằng những giá trị này có thể được thay đổi để phù hợp với nhu cầu của chúng tôi

Làm tròn một số thập phân được thực hiện với. lượng tử hóa[] phương pháp. Phương thức này nhận vào một giá trị thập phân, biểu thị số vị trí thập phân cần giữ

Ví dụ 10. Làm tròn với mô-đun thập phân

round[number, [, ndigit]]
0

Chúng ta có thể nhớ trong ví dụ 2 rằng làm tròn 2. 675 đến 2 chữ số thập phân với hàm round[] không thành công khi trả về 2. 67 thay vì 2. 68

Như đã đề cập trước đó, chúng ta có thể thay đổi các giá trị của thuộc tính độ chính xác và chiến lược làm tròn thành một trong các cờ sau

Bảng 1. Cờ cho chiến lược làm tròn

FlagDescriptionROUND_CEILINGVòng về phía Vô cực hoặc làm tròn lên. ROOUND_DOWNLàm tròn về 0 hoặc cắt ngắn.
ROUND_FLOORRLàm tròn về phía -Vô cực hoặc làm tròn xuống. ROUND_HALF_DOWN Làm tròn đến gần nhất với các mối quan hệ tiến về 0. ROUND_HALF_EVEN Làm tròn đến gần nhất với các mối quan hệ tiến đến số nguyên chẵn gần nhất. ROUND_HALF_UP Làm tròn đến số gần nhất và phá vỡ các mối quan hệ bằng cách làm tròn lên. ROUND_UPLàm tròn từ số 0. ROUND_05ULàm tròn lên nếu chữ số cuối cùng là 0 hoặc 5, nếu không thì làm tròn xuống.

Những lá cờ này có thể không có cùng ý nghĩa như chúng ta đã thấy ở đầu bài viết này. Ví dụ: ROUND_CEILING hoạt động giống như hàm round_up[] của chúng ta trong khi ROUND_FLOOR hoạt động giống như hàm round_down[] của chúng ta

Ngoài ra, cả ROUND_FLOOR và ROUND_CEILING đều không đối xứng quanh 0, không giống như cả ROUND_UP và ROUND_DOWN

ROUND_DOWN hoạt động giống như hàm truncate[] của chúng ta bằng cách làm tròn mọi thứ về 0

Hãy xem lá cờ đầu tiên hoạt động

Ví dụ 11. Làm tròn số thập phân. ROUND_CEILING

round[number, [, ndigit]]
1

đầu ra

Làm tròn mảng Numpy

Thư viện Numpy là một trong những thư viện được sử dụng phổ biến nhất trong khoa học dữ liệu và tính toán khoa học. Thư viện này cung cấp nhiều hàm có thể được sử dụng để làm tròn số float. Chúng ta sẽ xem xét một số ở đây

np. vòng[a[, số thập phân=0, ngoài=Không]]

Nó nhận dữ liệu đầu vào dạng mảng và một số vị trí thập phân tùy chọn để làm tròn thành [mặc định là 0]. Giống như chúng ta đã thấy với hàm round[] tích hợp ở trên, hàm Numpy round[] này sử dụng chiến lược ROUND HALF TO VEN và có thể nhận giá trị âm cho đối số thập phân

Nó không phải là một thư viện tích hợp, vì vậy cần phải được cài đặt. Nó được cài đặt với Anaconda hoặc chúng ta có thể chạy lệnh này trên thiết bị đầu cuối của mình để cài đặt nó

round[number, [, ndigit]]
2

Ví dụ 12. Mảng tròn của các số dấu phẩy động

round[number, [, ndigit]]
3

đầu ra

Điều thú vị về numpy này. hàm round[] là nó lấy dữ liệu dạng mảng. Không giống như hàm round[] tích hợp sẵn, hàm này hoạt động trên một danh sách hoặc mảng số tại một thời điểm

NB. Để tái tạo kết quả tương tự ở trên, hãy đảm bảo chọn 234 như trong mã ở trên

Cac chưc năng khac

Trong phần này, chúng ta sẽ xem xét một vài hàm khác mà Numpy cung cấp để làm tròn số dấu phẩy động thành số nguyên gần nhất;

ban 2. Hàm Numpy để làm tròn số dấu phẩy động thành số nguyên gần nhất

Chức năng numpy Mô tả numpy. floor[] Làm tròn mọi số dấu phẩy động trong một mảng thành số nguyên gần nhất nhỏ hơn hoặc bằng số ban đầu. cục mịch. ceil[] Làm tròn mọi số dấu phẩy động trong một mảng lên đến số nguyên gần nhất lớn hơn hoặc bằng số ban đầunumpy. truct[] Làm tròn mọi số dấu phẩy động trong một mảng thành thành phần nguyên của nó. cục mịch. rint[] Làm tròn mọi số có dấu phẩy động thành số nguyên gần nhất bằng cách sử dụng chiến lược LÀM TRÒN NỬA ĐẾN CHẲNG

Giống như chúng ta đã thấy với thư viện toán học tích hợp, chúng ta cũng có thể tùy chỉnh các hàm này để chúng có thể làm tròn đến một số vị trí thập phân đã chỉ định

Ví dụ 13. Tùy chỉnh numpy. floor[] để chấp nhận một đối số cho số chữ số thập phân để làm tròn thành

round[number, [, ndigit]]
4

đầu ra

Làm tròn chuỗi Pandas và DataFrame

Thư viện cũng là một trong những thư viện được sử dụng phổ biến nhất trong khoa học dữ liệu và phân tích dữ liệu. Cũng giống như Numpy, nó cũng được cài đặt với Anaconda hoặc chúng ta có thể chạy lệnh bên dưới để cài đặt nó

round[number, [, ndigit]]
5

Pandas có và là cấu trúc dữ liệu của chúng và cả hai đều có. hàm round[] hoạt động chính xác như np. round[] chúng ta đã thấy ở trên

Ví dụ 14. Làm tròn với Pandas

Trong ví dụ này, chúng ta sẽ xem cách làm tròn các đối tượng Series và DataFrame, đồng thời, chúng ta sẽ xem cách sử dụng các hàm làm tròn của numpy trên các đối tượng Pandas Series và DataFrame

round[number, [, ndigit]]
6

đầu ra

Các câu hỏi thường gặp

Q #1] Làm thế nào để bạn làm tròn số trong danh sách Python?

Câu trả lời. Chúng ta có nhiều cách để làm tròn số trong danh sách bằng Python. Đầu tiên sẽ là sử dụng cách hiểu danh sách cùng với bất kỳ chức năng làm tròn nào như bên dưới

round[number, [, ndigit]]
7

Trong trường hợp này, cách phổ biến nhất sẽ là sử dụng numpy. phương thức round[]

round[number, [, ndigit]]
8

Q #2] Round[] trong Python là gì

Câu trả lời. Round[] là một hàm tích hợp trong Python có hai đối số;

Q #3] Làm thế nào để bạn làm tròn đến 5 chữ số thập phân trong Python?

Câu trả lời. Với hàm round[] tích hợp sẵn, chúng ta có thể làm tròn đến bất kỳ vị trí thập phân nào bằng cách cung cấp số lượng vị trí thập phân để giữ làm đối số thứ hai. Nói rằng chúng tôi muốn vòng 3. 45610688 đến 5 chữ số thập phân

round[number, [, ndigit]]
9

Q #4] Làm thế nào để bạn làm tròn số mà không sử dụng hàm làm tròn trong Python?

Câu trả lời. Để làm tròn lên hoặc xuống mà không cần làm tròn [] tích hợp sẵn, trước tiên chúng ta nhân số cần làm tròn với 10. 0n, trong đó n là vị trí thập phân cần giữ. Sau đó, chúng tôi sử dụng toán học. trunc[] để cắt ngắn, toán học. ceil[] để làm tròn hoặc tính toán. floor[] để làm tròn xuống. Cuối cùng, chúng tôi chia kết quả cho cùng 10. 0n

Dưới đây là một ví dụ để làm tròn lên

def rounding_numbers[]:
    #ex_1 ndigits is None, which is same as no ndigit given
    number = 1.5 
    ndigits = None
    print["Round {} to {} ndigits: {}".format[number, ndigits, round[number, ndigits]]]

    #ex_2 no ndigits is given, which is same as ndigits = None
    number = 2.5
    print["Round {}: {}".format[number, round[number]]]

    #ex_3 round to 3 decimal places
    number = 3.45678
    ndigits = 3
    print["Round {} to {} ndigits: {}".format[number, ndigits, round[number, ndigits]]]

    #ex_4 round to zero decimal places
    number = 35.45678
    ndigits = 0
    print["Round {} to {} ndigits: {}".format[number, ndigits, round[number, ndigits]]]

    #ex_5 round to a nagative decimal place
    number = 12.56
    ndigits = -1
    print["Round {} to {} ndigits: {}".format[number, ndigits, round[number, ndigits]]]

if __name__ == '__main__':
    rounding_numbers[]
0

Q #5] Làm thế nào để bạn làm tròn đến số nguyên gần nhất?

Câu trả lời. Để làm tròn đến số nguyên gần nhất, trước hết ta dời dấu thập phân n lần trong đó n là số chữ số thập phân cần làm tròn. Sau đó, chúng tôi kiểm tra chữ số đầu tiên sau dấu thập phân

Nếu nó nhỏ hơn 5, chúng tôi không làm gì cả, nhưng nếu nó lớn hơn hoặc bằng 5, chúng tôi sẽ làm tròn chữ số trước dấu thập phân bằng cách thêm 1 vào nó. Cuối cùng, chúng tôi dịch chuyển dấu thập phân trở lại vị trí ban đầu

Phần kết luận

Trong bài viết này, chúng ta đã xem xét làm tròn số là gì và chúng áp dụng cho số có dấu phẩy động. Chúng tôi đã kiểm tra hàm round[] tích hợp sẵn của Python và cũng xem xét làm tròn với mô-đun toán học nơi chúng tôi thấy các chiến lược làm tròn khác nhau như Cắt ngắn, Làm tròn lên, Làm tròn xuống, v.v.

Chúng tôi cũng đề cập đến việc làm tròn với mô-đun Thập phân và cuối cùng, chúng tôi đã xem xét làm tròn các mảng Numpy và Pandas Series và DataFrames

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

Các giá trị được làm tròn thành bội số gần nhất của 10 lấy lũy thừa trừ đi chữ số thập phân; . ví dụ, tròn [0. 5] là 1. 0 và làm tròn[-0. 5] là -1. 0].

Làm. 5 làm tròn lên hay xuống?

Nếu số bạn đang làm tròn theo sau là 5, 6, 7, 8 hoặc 9, hãy làm tròn số lên . Ví dụ. 38 làm tròn đến hàng chục là 40. Nếu số bạn đang làm tròn được theo sau bởi 0, 1, 2, 3 hoặc 4, hãy làm tròn số xuống. Ví dụ. 33 làm tròn đến hàng chục là 30.

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

Ví dụ, 9. 8 làm tròn thành 10, chỉ có 0. 2 sự khác biệt. Tương tự, 10. 2 làm tròn thành 10, cùng hiệu số. Vì vậy, mục tiêu duy nhất là nhận được một giá trị gần với giá trị ban đầu nhưng ở dạng đơn giản hơn. Hãy tìm hiểu sâu hơn về làm tròn số trong Python. . Ví dụ -

Chủ Đề