Phương pháp thập phân Python

Phương thức

numstr = '12345'
print(numstr.isdecimal()) # returns True

numstr = '10.50'
print(numstr.isdecimal()) # returns False

alnumstr = '123A'
print(alnumstr.isdecimal()) # returns False

mystr = 'Python'
print(mystr.isdecimal()) # returns False
2 trả về True nếu tất cả các ký tự trong chuỗi là ký tự thập phân. Nếu không, nó trả về Sai

Các ký tự thập phân là những ký tự có thể được sử dụng để tạo thành các số trong cơ số 10. Tất cả 'Và' được coi là ký tự thập phân

cú pháp

str.isdecimal()

Thông số

Không có

Giá trị trả về

Trả về True nếu tất cả các ký tự trong chuỗi là số thập phân;

Các ví dụ sau minh họa phương pháp

numstr = '12345'
print(numstr.isdecimal()) # returns True

numstr = '10.50'
print(numstr.isdecimal()) # returns False

alnumstr = '123A'
print(alnumstr.isdecimal()) # returns False

mystr = 'Python'
print(mystr.isdecimal()) # returns False
2

Ví dụ. là thập phân()

Sao chép

numstr = '12345'
print(numstr.isdecimal()) # returns True

numstr = '10.50'
print(numstr.isdecimal()) # returns False

alnumstr = '123A'
print(alnumstr.isdecimal()) # returns False

mystr = 'Python'
print(mystr.isdecimal()) # returns False

đầu ra

True
False
False
False

Phương thức

numstr = '12345'
print(numstr.isdecimal()) # returns True

numstr = '10.50'
print(numstr.isdecimal()) # returns False

alnumstr = '123A'
print(alnumstr.isdecimal()) # returns False

mystr = 'Python'
print(mystr.isdecimal()) # returns False
2 sẽ trả về Sai nếu một chuỗi chứa khoảng trắng, ký hiệu hoặc bảng chữ cái

Ví dụ. Ký hiệu với isdecimal()

Sao chép

amount = '$100'
print(amount.isdecimal())

code = '#007'
print(mystr.isdecimal())

đầu ra

False
False

Tất cả các ký tự trong Unicode General Category 'Nd' đều là số thập phân e. g.

numstr = '12345'
print(numstr.isdecimal()) # returns True

numstr = '10.50'
print(numstr.isdecimal()) # returns False

alnumstr = '123A'
print(alnumstr.isdecimal()) # returns False

mystr = 'Python'
print(mystr.isdecimal()) # returns False
2 trả về Đúng cho số thập phân Ả Rập hai là số thập phân
numstr = '12345'
print(numstr.isdecimal()) # returns True

numstr = '10.50'
print(numstr.isdecimal()) # returns False

alnumstr = '123A'
print(alnumstr.isdecimal()) # returns False

mystr = 'Python'
print(mystr.isdecimal()) # returns False
3

Ví dụ. Ký tự thập phân Unicode với isdecimal()

Sao chép

arabicdecimal = '٢'  # 2 in Arabic
print(arabicdecimal.isdecimal())

đầu ra

True

Chỉ số trên và chỉ số dưới (thường được viết bằng unicode) được coi là ký tự chữ số và không phải số thập phân. Do đó, nếu chuỗi chứa các ký tự này cùng với các ký tự thập phân, thì

numstr = '12345'
print(numstr.isdecimal()) # returns True

numstr = '10.50'
print(numstr.isdecimal()) # returns False

alnumstr = '123A'
print(alnumstr.isdecimal()) # returns False

mystr = 'Python'
print(mystr.isdecimal()) # returns False
2 trả về Sai

Ví dụ

Sao chép

________số 8

đầu ra

False
False
True

Bảng sau đây liệt kê sự khác biệt giữa các phương thức

numstr = '12345'
print(numstr.isdecimal()) # returns True

numstr = '10.50'
print(numstr.isdecimal()) # returns False

alnumstr = '123A'
print(alnumstr.isdecimal()) # returns False

mystr = 'Python'
print(mystr.isdecimal()) # returns False
2, isdigit() và isnumeric() dựa trên các đầu vào đã cho

Chuỗi đầu vào Valueisdecimal()isdigit()isnumeric()'123'TrueTrueTrue'$123'FalseFalseFalse'123. 50'SaiSaiSaiSai'123a'SaiSaiSaiSai'¾'SaiFalseTrue'\u0034'TrueTrueTrue

Chỉ số trên và chỉ số dưới được coi là ký tự chữ số nhưng không phải là số thập phân. Nếu chuỗi chứa các ký tự này (thường được viết bằng unicode),

numstr = '12345'
print(numstr.isdecimal()) # returns True

numstr = '10.50'
print(numstr.isdecimal()) # returns False

alnumstr = '123A'
print(alnumstr.isdecimal()) # returns False

mystr = 'Python'
print(mystr.isdecimal()) # returns False
2 trả về Sai

Tương tự, chữ số La Mã, tử số tiền tệ và phân số được coi là số (thường được viết bằng unicode) chứ không phải số thập phân.

numstr = '12345'
print(numstr.isdecimal()) # returns True

numstr = '10.50'
print(numstr.isdecimal()) # returns False

alnumstr = '123A'
print(alnumstr.isdecimal()) # returns False

mystr = 'Python'
print(mystr.isdecimal()) # returns False
2 cũng trả về Sai trong trường hợp này

Có 2 phương thức

numstr = '12345'
print(numstr.isdecimal()) # returns True

numstr = '10.50'
print(numstr.isdecimal()) # returns False

alnumstr = '123A'
print(alnumstr.isdecimal()) # returns False

mystr = 'Python'
print(mystr.isdecimal()) # returns False
00 và
numstr = '12345'
print(numstr.isdecimal()) # returns True

numstr = '10.50'
print(numstr.isdecimal()) # returns False

alnumstr = '123A'
print(alnumstr.isdecimal()) # returns False

mystr = 'Python'
print(mystr.isdecimal()) # returns False
01 kiểm tra xem chuỗi có chứa ký tự chữ số và ký tự số tương ứng hay không

Mô-đun thập phân, như tên gợi ý, có thể được sử dụng để xử lý các số có dấu thập phân hoặc số kiểu động. Các phương pháp có trong mô-đun này giúp làm tròn số thập phân, chuyển đổi số và thực hiện các phép tính số học. Nó cũng tập trung rất nhiều vào độ chính xác và độ chính xác và mỗi số sau dấu thập phân được coi là quan trọng. Mô-đun thập phân xem xét một số như 1. 40 như 1. 40 chứ không phải 1. 4. Việc sử dụng mô-đun thập phân có thể được hiểu rõ nhất thông qua các ví dụ. Một số trong số họ được giải thích dưới đây

Thực hiện các phép tính toán học cơ bản bằng Mô-đun thập phân

Bạn có thể gọi Hàm tạo thập phân để chuyển đổi một số thành kiểu thập phân trong Python. Mẫu mã dưới đây cho thấy sự khác biệt giữa phân chia toán học cơ bản được thực hiện trên các số loại số nguyên và số loại thập phân

từ thập phân nhập Thập phân

a = 10
b = 11
c = a / b
d = Decimal(a) / Decimal(b)
print (c, type(c))
print (d, type(d))

Câu lệnh đầu tiên nhập lớp Thập phân từ mô-đun thập phân. Tiếp theo, hai biến “a” và “b” được tạo với một số giá trị. Biến “c” lưu trữ một giá trị được tạo ra bằng cách chia biến a cho b. Quá trình tương tự sau đó được lặp lại bằng cách chuyển đổi các số thành các đối tượng kiểu thập phân. Sau khi chạy mẫu mã trên, bạn sẽ nhận được đầu ra sau

0. 9090909090909091 <lớp 'float'>
0.9090909090909090909090909091 <lớp 'thập phân. Số thập phân'>

Như bạn có thể thấy trong kết quả ở trên, đối tượng kiểu float hiển thị các số có độ chính xác kém hơn so với đối tượng kiểu thập phân vì nó sử dụng một phương thức xấp xỉ tích cực hơn nhiều so với đối tượng kiểu thập phân. Theo mặc định, một số loại thập phân trong Python hiển thị tối đa 28 số. Bạn có thể thay đổi giá trị này theo nhu cầu của mình bằng cách gọi phương thức “getcontext” có sẵn trong mô-đun thập phân

từ thập phân nhập Thập phân
từ decimal import getcontext

getcontext().prec = 50
a = 10
b = 11
c = a / b
d = Decimal(a) / Decimal(b)
print (c, type(c))
print (d, type(d))

Trong mẫu mã ở trên, hàm getcontext đã được nhập và vị trí chính xác đã được đặt tối đa 50 vị trí. Phương thức getcontext có thể được sử dụng để xem bối cảnh hiện tại trong luồng và thay đổi một số tham số cấu hình mặc định cho mô-đun thập phân. Sau khi chạy mẫu mã trên, bạn sẽ nhận được đầu ra sau

0. 9090909090909091 <lớp 'float'>
0.90909090909090909090909090909090909090909090909091 <lớp 'thập phân. Số thập phân'>

Bạn có thể thực hiện bất kỳ loại phép tính số học nào với các đối tượng kiểu thập phân mà bạn có thể thực hiện với các đối tượng kiểu float trong Python. Số lượng lớn các số thập phân ở cuối trong các đối tượng kiểu thập phân có thể mang lại những con số chính xác, đặc biệt hữu ích trong các ứng dụng khoa học quan trọng về tài chính, kế toán, nhiệm vụ, v.v.

Lưu ý rằng bạn có thể tạo số kiểu thập phân từ số float, số nguyên và chuỗi chứa số bằng cách gọi hàm tạo thập phân chính

Làm tròn số bằng mô-đun thập phân

Mô-đun thập phân đi kèm với một số chế độ làm tròn được xác định trước mà bạn có thể sử dụng để làm tròn các số có dấu thập phân. Các chế độ này được gọi là ROUND_FLOOR, ROUND_CEILING, ROUND_HALF_DOWN, ROUND_HALF_UP, ROUND_UP, ROUND_DOWN, ROUND_HALF_EVEN và ROUND_05UP. Theo tài liệu chính thức của Python, đây là chức năng của từng chế độ này

  • ROUND_FLOOR. Số được làm tròn về phía âm vô cùng
  • ROUND_CEILING. Số được làm tròn về phía vô cực hoặc dương vô cực
  • ROUND_HALF_DOWN. Các số được làm tròn đến số gần nhất. Nếu hòa, số được làm tròn về 0. Ties là các số cách đều nhau có thể được làm tròn lên hoặc xuống. Ví dụ một số như 4. 25 có thể được làm tròn về cả 4. 2 và 4. 3
  • ROUND_HALF_UP. Các số được làm tròn đến số gần nhất. Nếu hòa thì làm tròn số từ 0
  • VÒNG_LÊN. Số được làm tròn từ 0
  • LÀM TRÒN XUỐNG. Số được làm tròn về 0
  • ROUND_HALF_EVEN. Các số được làm tròn đến số gần nhất. Mọi ràng buộc được làm tròn đến số nguyên chẵn gần nhất
  • ROUND_05UP. Các số được làm tròn từ 0 nếu số cuối cùng là 0 hoặc 5. Nếu không, thì các số được làm tròn về 0

Mẫu mã dưới đây cho thấy hành vi của các chế độ này

nhập thập phân
từ thập phân nhập Decimal
from decimal import getcontext

getcontext().prec = 2

getcontext ( . ).làm tròn = thập phân . ROUND_FLOOR
in ( Số thập phân ( . 9613.961) + Số thập phân (0))

getcontext().làm tròn = thập phân . ROUND_CEILING
in ( Số thập phân ( . 9613.961) + Số thập phân (0))

getcontext().làm tròn = thập phân . ROUND_HALF_DOWN
in ( Số thập phân ( . 7053.705) + Số thập phân (0))

getcontext().làm tròn = thập phân . ROUND_HALF_UP
in ( Số thập phân ( . 7753.775) + Số thập phân (0))

getcontext().làm tròn = thập phân . ROUND_UP
in ( Số thập phân ( . 7753.775) + Số thập phân (0))

getcontext().làm tròn = thập phân . ROUND_DOWN
in ( Số thập phân ( . 6093.609) + Số thập phân (0))

getcontext().làm tròn = thập phân . ROUND_HALF_EVEN
in ( Số thập phân ( . 6653.665) + Số thập phân (0))

getcontext().làm tròn = thập phân . ROUND_05UP
in ( Số thập phân ( . 6753.675) + Số thập phân (0))

Mẫu mã khá đơn giản. Độ chính xác của 2 chữ số được đặt để làm tròn số. Phương pháp làm tròn được thay đổi bằng cách đặt giá trị của đối tượng “làm tròn” (một phần của ngữ cảnh chính). Sau khi chạy mẫu mã ở trên, bạn sẽ nhận được đầu ra sau trong đó mỗi dòng tương ứng với chế độ làm tròn tương ứng

3. 9
4. 0
3. 7
3. 8
3. 8
3. 6
3. 7
3. 6

Làm tròn bằng phương pháp lượng tử hóa

Bạn cũng có thể sử dụng phương pháp “lượng tử hóa” có sẵn trong mô-đun thập phân để làm tròn số. Quá trình này giống hệt với phương pháp được giải thích ở trên. Tuy nhiên, thay vì đặt riêng các số chính xác, bạn có thể cung cấp một số mũ làm đối số cho phương pháp lượng tử hóa để làm tròn một số đến một vị trí cụ thể. Dưới đây là một mẫu mã

nhập thập phân
từ thập phân nhập Decimal

rounded = Decimal(3.961) . số hóa( Số thập phân (' . 0'), làm tròn =decimal.ROUND_FLOOR)
in ( làm tròn )

Số mũ của '1. 0' đã được cung cấp cho phương thức lượng tử hóa và phương thức làm tròn đã được cung cấp dưới dạng đối số bổ sung. Nó sẽ trả về một số trong X. định dạng X. Sau khi chạy mẫu mã trên, bạn sẽ nhận được đầu ra sau

3. 9

So Sánh Hai Số Thập Phân

Bạn có thể so sánh hai đối tượng kiểu thập phân bất kỳ bằng cách sử dụng phương thức “so sánh” có sẵn trong mô-đun thập phân. Các ví dụ dưới đây cho thấy cách sử dụng của nó

từ thập phân nhập Thập phân

in (Decimal(1.2) . so sánh( Số thập phân (1. 1)))
in . 0Decimal(1.0) . so sánh( Số thập phân (1. 1)))
in . 0Decimal(1.0) . so sánh( Số thập phân (1. 0)))

Bạn có thể gọi phương thức so sánh trên đối tượng kiểu thập phân và cung cấp số khác làm đối số. Giá trị 0, 1 hoặc -1 sẽ được trả về tùy thuộc vào các số được so sánh. Giá trị 0 cho biết cả hai số bằng nhau, giá trị 1 cho biết số thứ nhất lớn hơn số thứ hai và giá trị -1 cho biết số thứ nhất nhỏ hơn số thứ hai. Sau khi chạy mẫu mã trên, bạn sẽ nhận được đầu ra sau

1
- 1
0

Phần kết luận

Mặc dù mô-đun thập phân được sử dụng phổ biến nhất để kiểm soát độ chính xác của số thập phân và để làm tròn các số sau dấu thập phân, nhưng nó đi kèm với một số phương pháp hữu ích khác có thể được sử dụng thêm để thao tác các số thập phân nhằm tạo ra kết quả chính xác từ các phép tính số học. Cách sử dụng cơ bản của mô-đun thập phân đã được đề cập trong bài viết này và nó sẽ đủ cho hầu hết các trường hợp. Nhưng bạn luôn có thể đọc thêm về các phương pháp nâng cao từ tài liệu Python chính thức

Số thập phân hoạt động như thế nào trong Python?

Theo mặc định, Python hiểu bất kỳ số nào bao gồm dấu thập phân dưới dạng số dấu phẩy động có độ chính xác kép . Thập phân là loại dấu thập phân động có độ chính xác cao hơn và phạm vi nhỏ hơn so với dấu phẩy động. Nó phù hợp cho các tính toán tài chính và tiền tệ.

Kiểu thập phân trong Python là gì?

Một mô-đun mới, số thập phân, đã được thêm vào thư viện chuẩn của Python. Nó chứa hai lớp, Decimal và Context. Các phiên bản thập phân đại diện cho các số và các phiên bản Ngữ cảnh được sử dụng để kết thúc các cài đặt khác nhau, chẳng hạn như chế độ làm tròn chính xác và mặc định.

Tại sao 0. 1 0. 2 không phải là 0. 3 con trăn?

Tương tự, giá trị nhị phân của 0. 2 được lưu dưới dạng 0. 001100110. Bây giờ, khi bạn thêm 0. 1 + 0. 2 bằng Python (hoặc bằng một số ngôn ngữ lập trình khác), Python chuyển đổi 0. 1 và 0. 2 về dạng nhị phân. Sau đó, nó thực hiện phép cộng. Kết quả sẽ không bao giờ bằng 0. 3 chính xác .