Python xóa số thập phân khỏi chuỗi

Sử dụng Python, chúng ta thường xuyên phải xử lý các loại số khác nhau. Chúng ta cần tự hỏi làm thế nào để chỉ định số vị trí thập phân trong Python

Theo mặc định, bất kỳ số nào bao gồm dấu thập phân đều được coi là số dấu phẩy động. Các số dấu phẩy động nhị phân này dựa trên phần cứng và mất độ chính xác sau khoảng 15 chữ số thập phân. Chúng không phải lúc nào cũng là cách tiếp cận tốt nhất để xử lý các chữ số thập phân

Hãy xem xét các phương pháp khác nhau để chỉ định số vị trí thập phân trong Python và xem phương pháp nào hoạt động tốt nhất cho dự án của bạn

Phương pháp 1. Các kiểu dữ liệu để chỉ định điểm thập phân

Nếu chúng tôi bắt đầu với một phương tiện chặn trống, chúng tôi có thể sẽ sử dụng các loại dữ liệu được tạo có tính đến số thập phân. Nhưng thông thường, chúng tôi thấy mình trong các tình huống trình bày các loại dữ liệu không được thiết kế để xử lý số thập phân

Chúng tôi sẽ đề cập đến các loại dữ liệu này và chỉ cho bạn cách chúng tôi có thể chuyển đổi các loại của chúng để đạt được trạng thái thập phân.

a. phao nổi

Số float là cách mặc định của Python để hiển thị các số có vị trí thập phân. Hãy tạo một biến và thêm một giá trị bằng dấu thập phân

my_float = 18.50623

Khi chúng tôi kiểm tra loại biến của mình, chúng tôi thấy rằng Python đã tự động nhận dạng nó là float

print[type[my_float]]

b. số nguyên

Số nguyên là số không có chữ số thập phân.  

my_integer = 19
print[type[my_integer]]

c. dây

Chuỗi là chuỗi các ký tự Unicode được bao bọc trong dấu ngoặc đơn hoặc dấu ngoặc kép.  

my_string = '18.50623'
print[type[my_string]]

d. bộ dữ liệu

Một bộ là một tập hợp các đối tượng Python được phân tách bằng dấu phẩy

my_tuple = [1, 8, 5, 0, 6, 2, 3]
print[type[my_tuple]]

Một cách dễ dàng để sử dụng số nguyên và chuỗi có vị trí thập phân là chuyển đổi chúng thành số float. Sau khi chúng được chuyển thành float, chúng ta có thể sử dụng chúng giống như bất kỳ float nào khác. Lưu ý rằng khi chuyển đổi một chuỗi, chuỗi phải chứa dấu thập phân.  

Hãy tiếp tục và chuyển đổi số nguyên và chuỗi của chúng tôi

my_integer = 19
my_floated_integer = float[my_integer]

print[type[my_integer]]
print[type[my_floated_integer]]
print[my_integer]
print[my_floated_integer]

my_string = '18.50623'
my_floated_string = float[my_string]

print[type[my_string]]
print[type[my_floated_string]]
print[my_string]
print[my_floated_string]

Và đó là nó. Bây giờ chúng ta có thể chỉ định số vị trí thập phân cho số float mới của mình bằng các phương pháp sau.  

Chúng tôi có các cách khác để xây dựng các phiên bản thập phân bằng cách sử dụng số float, số nguyên, chuỗi và bộ dữ liệu. Chúng tôi sẽ đề cập đến mô-đun thập phân và việc xây dựng các trường hợp đó sau trong bài đăng này

Phương pháp 2. Chỉ định vị trí thập phân trong giá trị dấu phẩy động

Giá trị dấu phẩy động là cách mặc định của Python để xử lý số thập phân

Các giá trị dấu phẩy động nhị phân này dựa trên phần cứng, có nghĩa là chúng không hoạt động giống như cách chúng ta học số học ở trường

Giá trị dấu phẩy động chỉ chính xác cho đến vị trí thập phân thứ 15. Điều này có thể dẫn đến nhiều vấn đề, không chỉ trong Python

Hãy xem ví dụ nhanh này

float1 = 0.1 + 0.1 + 0.1
float2 = 0.3
float3 = float1 == float2
print[float1] # -> 0.30000000000000004
print[float2] # -> 0.3
print[float3] # -> False

Python đang nói với chúng ta rằng 0. 3 không giống như 0. 3. Ít nhất là không phải khi chúng ta sử dụng phao

Điều đó đang được nói, phao không phải là vô dụng. Là trình quản lý thập phân Python mặc định, chúng ta có thể dễ dàng đặt độ chính xác của mình trong các giá trị dấu phẩy động, dễ dàng chỉ định số vị trí thập phân

Hãy xem xét một số phương pháp

a. % nhà điều hành

Chúng ta có thể sử dụng toán tử modulo để cắt bỏ mọi chữ số thập phân không bắt buộc

my_float = 18.50623
my_short_float = '%.2f'%my_float

b. định dạng[]

Phương thức định dạng thực hiện tương tự với một cú pháp hơi khác

________số 8

c. vòng[]

Phương thức round yêu cầu hai đối số để trả về số vị trí thập phân đã chỉ định của chúng tôi.  

my_short_float = round[my_float, 2]

Cả ba phương pháp đều mang lại kết quả như nhau. Vì vậy, hãy chuyển sang một cách chính xác hơn để chỉ định số vị trí thập phân trong Python

Phương pháp 3. Chỉ định Vị trí Thập phân bằng Mô-đun Thập phân

a. Số thập phân[]

Mô-đun thập phân Python hoạt động giống như số học chúng ta đã học ở trường. Chúng ta có thể xây dựng các trường hợp thập phân bằng cách sử dụng lớp

my_string = '18.50623'
print[type[my_string]]
8 của mô-đun thập phân. Chúng ta có thể xây dựng các trường hợp thập phân từ số nguyên, chuỗi, số float và bộ dữ liệu.  

Mô-đun thập phân biểu thị chính xác các số thập phân, đó là lý do tại sao nó được ưa chuộng trong các ứng dụng kế toán và bất kỳ nơi nào khác sử dụng các giá trị tiền tệ

Chúng tôi có thể thay đổi độ chính xác mà chúng tôi cần trực tiếp trong mô-đun. Trước tiên, chúng ta cần nhập mô-đun thập phân cho tất cả các phương thức sau

print[type[my_float]]
0

Ok, bây giờ chúng tôi đã nhập mô-đun thập phân của mình, hãy xem ngữ cảnh hiện tại

b. getcontext[]

Với phương pháp

my_string = '18.50623'
print[type[my_string]]
9, chúng tôi có thể thay đổi cài đặt của mình về độ chính xác – chúng tôi muốn bao nhiêu số có nghĩa – và để làm tròn

Ok, chúng ta hãy xem

print[type[my_float]]
1

Bối cảnh hiện tại cho chúng tôi thấy các cài đặt mà chúng tôi có thể điều chỉnh cho các hoạt động thập phân của mình. Trong bài đăng này, chúng tôi sẽ chỉ tập trung vào hai trong số các cài đặt, độ chính xác [prec] và làm tròn

Độ chính xác

Số liệu quan trọng được tính trên cả hai mặt của dấu thập phân.  

  • Mọi chữ số khác 0 đều là số có nghĩa
  • Các số 0 đứng trước bất kỳ chữ số khác 0 nào đều không có ý nghĩa. Không quan trọng chúng ở trước hay sau dấu thập phân.  
  • Các số 0 ở sau các chữ số khác 0 là có ý nghĩa
  • Số 0 sau chữ số khác 0 trong số thập phân là có nghĩa.  
  • Các số 0 ở cuối sau một chữ số khác 0 trong một số không phải là số thập phân là không đáng kể

Hãy nhanh chóng xem xét một vài ví dụ. Mỗi số thập phân này có bảy chữ số. Hãy làm rõ có bao nhiêu chữ số đó có nghĩa

print[type[my_float]]
2

Vì vậy, tại sao chúng ta sử dụng số liệu quan trọng, bạn yêu cầu?

Không. Hãy lấy một ví dụ nhanh

print[type[my_float]]
3

Kết quả phép chia của chúng tôi có độ chính xác là 28 chữ số có nghĩa như được thiết lập mặc định. Các biến của chúng ta có 3 [

my_tuple = [1, 8, 5, 0, 6, 2, 3]
print[type[my_tuple]]
0] và 4 [
my_tuple = [1, 8, 5, 0, 6, 2, 3]
print[type[my_tuple]]
1] chữ số có nghĩa

Tuy nhiên, theo quy tắc về các số có nghĩa, một kết quả không thể có độ chính xác cao hơn các biến mà chúng tôi đã sử dụng, vì vậy chúng tôi giới hạn kết quả thập phân có cùng số lượng các số có nghĩa như biến của chúng tôi với số lượng các số có nghĩa ít hơn,

Chúng tôi có thể kiểm soát điều này bằng cách cho getcontext biết chúng tôi muốn độ chính xác của mình sử dụng bao nhiêu số liệu quan trọng.  

print[type[my_float]]
4

Bây giờ, hãy kiểm tra ngữ cảnh hiện tại

print[type[my_float]]
5

của bạn đi. Chúng tôi đã thay đổi độ chính xác thập phân thành 3 chữ số có nghĩa.  

Bây giờ in kết quả của chúng tôi có độ chính xác chính xác mà chúng tôi cần

print[type[my_float]]
6

Hãy xem điều gì sẽ xảy ra khi chúng ta sử dụng mô-đun thập phân với cài đặt hiện tại.  

Hãy sử dụng một số với một vài chữ số thập phân. Làm thế nào về tốc độ quỹ đạo của hành tinh của chúng ta? . 506238539154285 dặm một giây, vì vậy người ta cho rằng mặt trời là nguồn gốc của tất cả sức mạnh của chúng ta.  

print[type[my_float]]
7

Hãy kiểm tra xem chúng ta đã sử dụng kiểu dữ liệu nào

print[type[my_float]]
8

Đúng như dự đoán, Python cho chúng ta biết tốc độ quỹ đạo của chúng ta là một phao. Bây giờ, hãy sử dụng lớp

my_string = '18.50623'
print[type[my_string]]
8 để tạo một thể hiện thập phân của float

print[type[my_float]]
9

Hãy kiểm tra kiểu dữ liệu mới của chúng tôi

my_integer = 19
print[type[my_integer]]
0

Nó cho chúng tôi biết loại là một số thập phân, tuyệt vời. Trong phần trước, chúng ta đã học cách sử dụng cài đặt độ chính xác để kiểm soát số lượng các số liệu quan trọng mà chúng tôi hiển thị. Hãy đặt chúng thành 5 và xem nó có trả về 18 không. 506

my_integer = 19
print[type[my_integer]]
1

Thật lạ. Các chữ số thập phân chưa được rút ngắn. Điều gì đã xảy ra ở đây?

Hãy kiểm tra cài đặt chính xác của chúng tôi

my_integer = 19
print[type[my_integer]]
2

Không, độ chính xác được đặt ở mức 5 như chúng tôi dự định.  

Thật không may, trong mô-đun thập phân, độ chính xác và làm tròn chỉ phát huy tác dụng trong các phép tính số học, điều đó có nghĩa là, nếu chúng ta không có phép toán số học để xử lý, thì độ chính xác sẽ không được áp dụng.  

Có một cách giải quyết, mặc dù. Chúng ta cần sử dụng một phép toán số học không làm thay đổi giá trị của chúng ta. Nhân số thập phân của chúng tôi với 1 sẽ làm chính xác điều đó.  

my_integer = 19
print[type[my_integer]]
3

làm tròn

Bất cứ khi nào chúng ta muốn rút gọn số thập phân, chúng ta cần xác định cách chúng ta muốn làm tròn số còn lại

Hãy xem xét lại cài đặt

my_string = '18.50623'
print[type[my_string]]
9 của chúng tôi

my_integer = 19
print[type[my_integer]]
2

Làm tròn được đặt thành ROUNDHALFEVEN và có thể được thay đổi bằng cùng một lệnh

my_tuple = [1, 8, 5, 0, 6, 2, 3]
print[type[my_tuple]]
5 mà chúng tôi đã sử dụng để thay đổi độ chính xác.  

my_integer = 19
print[type[my_integer]]
5

Các phương án làm tròn bao gồm

my_tuple = [1, 8, 5, 0, 6, 2, 3]
print[type[my_tuple]]
6,
my_tuple = [1, 8, 5, 0, 6, 2, 3]
print[type[my_tuple]]
7,
my_tuple = [1, 8, 5, 0, 6, 2, 3]
print[type[my_tuple]]
8,
my_tuple = [1, 8, 5, 0, 6, 2, 3]
print[type[my_tuple]]
9,
my_integer = 19
my_floated_integer = float[my_integer]

print[type[my_integer]]
print[type[my_floated_integer]]
print[my_integer]
print[my_floated_integer]

my_string = '18.50623'
my_floated_string = float[my_string]

print[type[my_string]]
print[type[my_floated_string]]
print[my_string]
print[my_floated_string]
0,
my_integer = 19
my_floated_integer = float[my_integer]

print[type[my_integer]]
print[type[my_floated_integer]]
print[my_integer]
print[my_floated_integer]

my_string = '18.50623'
my_floated_string = float[my_string]

print[type[my_string]]
print[type[my_floated_string]]
print[my_string]
print[my_floated_string]
1,
my_integer = 19
my_floated_integer = float[my_integer]

print[type[my_integer]]
print[type[my_floated_integer]]
print[my_integer]
print[my_floated_integer]

my_string = '18.50623'
my_floated_string = float[my_string]

print[type[my_string]]
print[type[my_floated_string]]
print[my_string]
print[my_floated_string]
2 và
my_integer = 19
my_floated_integer = float[my_integer]

print[type[my_integer]]
print[type[my_floated_integer]]
print[my_integer]
print[my_floated_integer]

my_string = '18.50623'
my_floated_string = float[my_string]

print[type[my_string]]
print[type[my_floated_string]]
print[my_string]
print[my_floated_string]
3.  

Phương pháp mô-đun thập phân cuối cùng mà chúng tôi sẽ xem xét cung cấp những gì tốt nhất của cả hai thế giới. Chúng ta hãy xem phương pháp

my_integer = 19
my_floated_integer = float[my_integer]

print[type[my_integer]]
print[type[my_floated_integer]]
print[my_integer]
print[my_floated_integer]

my_string = '18.50623'
my_floated_string = float[my_string]

print[type[my_string]]
print[type[my_floated_string]]
print[my_string]
print[my_floated_string]
4

c. lượng tử hóa[]

Phương thức

my_integer = 19
my_floated_integer = float[my_integer]

print[type[my_integer]]
print[type[my_floated_integer]]
print[my_integer]
print[my_floated_integer]

my_string = '18.50623'
my_floated_string = float[my_string]

print[type[my_string]]
print[type[my_floated_string]]
print[my_string]
print[my_floated_string]
5 làm tròn đến một số chữ số thập phân cố định. Điều đó làm cho phương pháp này trở thành người bạn đồng hành hoàn hảo cho bất kỳ dự án nào, bao gồm cả tiền tệ hoặc bất kỳ ứng dụng tiền tệ nào khác. Hãy nhìn vào cú pháp

my_integer = 19
print[type[my_integer]]
6

Đối số đầu tiên xác định vị trí mà chúng ta muốn làm tròn số thập phân của mình. Có hai cách chúng ta có thể làm điều này. Đầu tiên, chúng ta có thể sử dụng số 0 để cho biết chúng ta muốn có bao nhiêu chữ số thập phân và chữ số 1 để cho biết vị trí cần làm tròn

my_integer = 19
print[type[my_integer]]
7

trả về hai chữ số thập phân sau dấu thập phân

my_integer = 19
print[type[my_integer]]
8

trả về 4 chữ số thập phân sau dấu thập phân

Hoặc thứ hai, chúng ta có thể sử dụng số 0 để cho biết chúng ta muốn có bao nhiêu chữ số thập phân và nơi làm tròn

my_integer = 19
print[type[my_integer]]
9

trả về 2 chữ số thập phân sau dấu thập phân

my_string = '18.50623'
print[type[my_string]]
0

trả về 4 chữ số thập phân sau dấu thập phân

my_string = '18.50623'
print[type[my_string]]
1

trả về một số nguyên không có chữ số thập phân

my_string = '18.50623'
print[type[my_string]]
2

Đối số thứ hai xác định cách làm tròn. Nếu chúng ta không thêm đối số thứ hai, giá trị mặc định trong

my_integer = 19
my_floated_integer = float[my_integer]

print[type[my_integer]]
print[type[my_floated_integer]]
print[my_integer]
print[my_floated_integer]

my_string = '18.50623'
my_floated_string = float[my_string]

print[type[my_string]]
print[type[my_floated_string]]
print[my_string]
print[my_floated_string]
6 sẽ xác định cách làm tròn.  

Phương pháp 4. Loại bỏ các vị trí thập phân bằng mô-đun toán học

Loại bỏ các chữ số thập phân và trở về kiểu số nguyên rất đơn giản nếu bạn biết mình đang tìm kiếm kết quả nào

Nó có thể đơn giản như việc cắt bỏ tất cả các chữ số thập phân hiện có. Python có một mô-đun

my_integer = 19
my_floated_integer = float[my_integer]

print[type[my_integer]]
print[type[my_floated_integer]]
print[my_integer]
print[my_floated_integer]

my_string = '18.50623'
my_floated_string = float[my_string]

print[type[my_string]]
print[type[my_floated_string]]
print[my_string]
print[my_floated_string]
7 cho phép chúng tôi làm điều đó

Hãy bắt đầu và bắt đầu bằng cách nhập mô-đun

my_integer = 19
my_floated_integer = float[my_integer]

print[type[my_integer]]
print[type[my_floated_integer]]
print[my_integer]
print[my_floated_integer]

my_string = '18.50623'
my_floated_string = float[my_string]

print[type[my_string]]
print[type[my_floated_string]]
print[my_string]
print[my_floated_string]
8

my_string = '18.50623'
print[type[my_string]]
3

Và hãy thêm tốc độ quỹ đạo của hành tinh chúng ta để có một giá trị để làm việc với

print[type[my_float]]
7

Ba phương pháp sau loại bỏ tất cả các vị trí thập phân bằng cách chuyển đổi số float của chúng tôi thành một số nguyên

a. trunc[]

Phương thức

my_integer = 19
my_floated_integer = float[my_integer]

print[type[my_integer]]
print[type[my_floated_integer]]
print[my_integer]
print[my_floated_integer]

my_string = '18.50623'
my_floated_string = float[my_string]

print[type[my_string]]
print[type[my_floated_string]]
print[my_string]
print[my_floated_string]
9 lấy số float của chúng ta và loại bỏ mọi chữ số thập phân, chỉ để lại cho chúng ta số nguyên còn lại

my_string = '18.50623'
print[type[my_string]]
5

b. trần nhà[]

Phương thức

float1 = 0.1 + 0.1 + 0.1
float2 = 0.3
float3 = float1 == float2
print[float1] # -> 0.30000000000000004
print[float2] # -> 0.3
print[float3] # -> False
0 lấy số float của chúng ta và làm tròn lên số nguyên lớn hơn số float của chúng ta.  

my_string = '18.50623'
print[type[my_string]]
6

c. tầng lầu[]

Phương thức

float1 = 0.1 + 0.1 + 0.1
float2 = 0.3
float3 = float1 == float2
print[float1] # -> 0.30000000000000004
print[float2] # -> 0.3
print[float3] # -> False
1 lấy số float của chúng ta và làm tròn xuống số nguyên nhỏ hơn số float của chúng ta.  

my_string = '18.50623'
print[type[my_string]]
7

Sử dụng các phương pháp trên là một cách đơn giản để trở về một số nguyên được làm tròn theo cách chúng ta cần

Tóm lược

Python cung cấp nhiều tùy chọn cho các tình huống khác nhau xử lý số thập phân. Tùy thuộc vào dự án của chúng tôi, chúng tôi đã xem xét một số cách có giá trị nhất để chỉ định số vị trí thập phân trong Python.  

  • Chúng tôi đã đề cập đến các loại dữ liệu phổ biến để chỉ định số vị trí thập phân trong Python
  • Chúng tôi đã tìm hiểu các cách nhanh chóng và đơn giản để đặt vị trí thập phân của số float bằng cách sử dụng toán tử modulo, phương thức
    float1 = 0.1 + 0.1 + 0.1
    float2 = 0.3
    float3 = float1 == float2
    print[float1] # -> 0.30000000000000004
    print[float2] # -> 0.3
    print[float3] # -> False
    2 và phương thức
    float1 = 0.1 + 0.1 + 0.1
    float2 = 0.3
    float3 = float1 == float2
    print[float1] # -> 0.30000000000000004
    print[float2] # -> 0.3
    print[float3] # -> False
    3
  • Chúng tôi đã học cách sử dụng mô-đun
    float1 = 0.1 + 0.1 + 0.1
    float2 = 0.3
    float3 = float1 == float2
    print[float1] # -> 0.30000000000000004
    print[float2] # -> 0.3
    print[float3] # -> False
    4 để có độ chính xác cao hơn, khi cần cho các ứng dụng tài chính và khi chúng tôi muốn sử dụng các chữ số thập phân có nghĩa [3. 50 thay vì 3. 5]
  • Và cuối cùng, chúng tôi đã xem nhanh cách mô-đun
    my_integer = 19
    my_floated_integer = float[my_integer]
    
    print[type[my_integer]]
    print[type[my_floated_integer]]
    print[my_integer]
    print[my_floated_integer]
    
    my_string = '18.50623'
    my_floated_string = float[my_string]
    
    print[type[my_string]]
    print[type[my_floated_string]]
    print[my_string]
    print[my_floated_string]
    8 cho phép chúng tôi xác định rằng chúng tôi không muốn bất kỳ chữ số thập phân nào cả.  

lập trình viên

👱‍♀️ Lập trình viên 1. Chúng tôi gặp sự cố
🧔‍♂️ Lập trình viên 2. Hãy sử dụng RegEx.
👱‍♀️ Lập trình viên 1. Bây giờ chúng ta có hai vấn đề

… chưa hết – bạn có thể dễ dàng giảm hai vấn đề này xuống 0 khi hoàn thiện “Siêu năng lực RegEx trong Python” của mình. 🙂

Chủ Đề