Python chuyển đổi float thành ký hiệu kỹ thuật

Cung cấp khả năng kiểm soát làm tròn, cắt và đệm. Sử dụng và giả định làm tròn không thiên vị của IEEE. Sử dụng thuật toán “Dragon4”

Thông số . x python float hoặc vô hướng nổi numpy

Giá trị để định dạng

độ chính xác số nguyên không âm hoặc Không, tùy chọn

Số chữ số in tối đa. Có thể là Không nếu

>>> print[0.00001]
0.00001
4 là Đúng, nhưng phải là số nguyên nếu duy nhất là Sai

duy nhất boolean, tùy chọn

Nếu Đúng, hãy sử dụng chiến lược tạo chữ số cung cấp biểu diễn ngắn nhất xác định duy nhất số dấu phẩy động từ các giá trị khác cùng loại, bằng cách làm tròn hợp lý. Nếu độ chính xác được cung cấp ít chữ số hơn mức cần thiết có thể được in. Nếu min_digits được cung cấp thì có thể in nhiều hơn, trong trường hợp đó, chữ số cuối cùng được làm tròn với cách làm tròn không thiên vị. Nếu Sai, các chữ số được tạo như thể in một giá trị có độ chính xác vô hạn và dừng sau các chữ số chính xác, làm tròn giá trị còn lại bằng cách làm tròn không thiên vị

trim một trong số 'k', '. ', '0', '-', tùy chọn

Kiểm soát việc cắt bớt các chữ số ở cuối sau khi xử lý, như sau

  • 'k'. giữ các số 0 ở cuối, giữ nguyên dấu thập phân [không cắt xén]

  • ‘. ’. cắt bỏ tất cả các số 0 ở cuối, để lại dấu thập phân

  • '0'. cắt tất cả trừ số 0 trước dấu thập phân. Chèn số không nếu nó bị thiếu

  • '-'. cắt bỏ các số 0 ở cuối và bất kỳ dấu thập phân nào ở cuối

dấu boolean, tùy chọn

Có hiển thị dấu cho giá trị dương hay không

pad_left số nguyên không âm, tùy chọn

Đệm phía bên trái của chuỗi bằng khoảng trắng cho đến khi có ít nhất nhiều ký tự ở bên trái dấu thập phân

exp_digits số nguyên không âm, tùy chọn

Đệm số mũ bằng các số 0 cho đến khi nó chứa ít nhất nhiều chữ số này. Nếu bỏ qua, số mũ sẽ có ít nhất 2 chữ số

min_digits số nguyên không âm hoặc Không, tùy chọn

Số chữ số tối thiểu để in. Điều này chỉ có tác dụng cho unique=True. Trong trường hợp đó, nhiều chữ số hơn mức cần thiết để nhận dạng duy nhất giá trị có thể được in và làm tròn không thiên vị

Nếu bạn in một giá trị float bằng Python nhỏ hơn

>>> print[0.00001]
0.00001
5, Python sẽ sử dụng ký hiệu khoa học cho các số nhỏ, chẳng hạn như
>>> print[0.00001]
0.00001
6, viết tắt của
>>> print[0.00001]
0.00001
0

Đây là một ví dụ đầu ra khi in các số float nhỏ hơn và nhỏ hơn vào shell. Nếu có nhiều hơn ba số 0 sau dấu thập phân, Python sẽ sử dụng ký hiệu khoa học

>>> print[0.01]
0.01
>>> print[0.001]
0.001
>>> print[0.0001]
0.0001
>>> print[0.00001]
1e-05
>>> print[0.000001]
1e-06

Vấn đề. Cách hiển thị các con số không khoa học?

Đây là đầu ra mong muốn của bạn

>>> print[0.00001]
0.00001

Giải pháp 1. Định dạng chuỗi f

Cách hiệu quả nhất là sử dụng các khả năng của Python để định dạng chuỗi bằng f-string, i. e. , các loại chuỗi định dạng đặc biệt được đính kèm trong

>>> print[0.00001]
0.00001
1. Trong một chuỗi f đã cho, bạn có thể sử dụng trình xác định định dạng
>>> print[0.00001]
0.00001
2 để yêu cầu Python sử dụng ký hiệu dấu phẩy động cho số trước hậu tố
>>> print[0.00001]
0.00001
3. Như vậy, để in số
>>> print[0.00001]
0.00001
4 một cách phi khoa học, hãy sử dụng biểu thức
>>> print[0.00001]
0.00001
5

________số 8

Vấn đề với cách tiếp cận này là nếu bạn thử với các số nhỏ hơn, nó chỉ hiển thị _______ 06 chữ số vì độ chính xác mặc định là không đổi

>>> print[0.01]
0.01
>>> print[0.001]
0.001
>>> print[0.0001]
0.0001
>>> print[0.00001]
1e-05
>>> print[0.000001]
1e-06
0

mặc định. f độ chính xác tạo một chuỗi có chín ký tự [bao gồm cả dấu phẩy động]. Nếu giá trị float không thể được biểu diễn trong vòng chín ký tự, chuỗi biểu diễn của float sẽ bị cắt. Đây rõ ràng không phải là những gì bạn muốn

Giải pháp 2. Định dạng chuỗi f với độ chính xác

Cách tốt nhất để in các số float thậm chí nhỏ là sử dụng chuỗi f, tôi. e. , các loại chuỗi định dạng đặc biệt được đính kèm trong

>>> print[0.00001]
0.00001
1. Trong một chuỗi f đã cho, bạn có thể sử dụng trình xác định định dạng
>>> print[0.00001]
0.00001
8 để yêu cầu Python sử dụng độ chính xác của dấu phẩy động với 12 chữ số sau dấu thập phân. Như vậy, để in ra số
>>> print[0.00001]
0.00001
9 một cách phi khoa học với 14 chữ số thập phân, hãy sử dụng biểu thức
my_float = 0.00001
print[f'{my_float:f}']
# 0.000010
0

>>> print[0.01]
0.01
>>> print[0.001]
0.001
>>> print[0.0001]
0.0001
>>> print[0.00001]
1e-05
>>> print[0.000001]
1e-06
5

Và với 8 chữ số

>>> print[0.01]
0.01
>>> print[0.001]
0.001
>>> print[0.0001]
0.0001
>>> print[0.00001]
1e-05
>>> print[0.000001]
1e-06
6

Vui lòng xem video hướng dẫn ngắn của tôi về f-string và hàm

my_float = 0.00001
print[f'{my_float:f}']
# 0.000010
1 thay thế tại đây

Hàm định dạng Python[]. Hướng dẫn không có BS bằng ví dụ


Xem video này trên YouTube

Tuy nhiên, nếu bạn muốn tự động chặn

>>> print[0.00001]
0.00001
6 chữ số ở cuối, thì phương pháp này sẽ không hữu ích

Giải pháp 3. Định dạng NumPy_float_positional[]

Phương thức

my_float = 0.00001
print[f'{my_float:f}']
# 0.000010
3 định dạng một số float đã cho dưới dạng chuỗi thập phân bằng cách sử dụng ký hiệu vị trí phi khoa học. Đối số đầu tiên là số float sẽ được hiển thị. Đối số
my_float = 0.00001
print[f'{my_float:f}']
# 0.000010
4 tùy chọn khi được đặt thành
my_float = 0.00001
print[f'{my_float:f}']
# 0.000010
5 sẽ cắt bỏ các số 0 ở cuối và bất kỳ dấu thập phân nào ở cuối nếu không cần thiết

Đây là một ví dụ đơn giản

>>> print[0.00001]
0.00001
2

Hãy áp dụng phương pháp này cho nhiều số để thấy rằng NumPy tự động cắt tất cả các số 0 ở cuối. Để thuận tiện, tôi đã định nghĩa một hàm chuyển đổi đơn giản bằng cách sử dụng ký hiệu lambda

>>> print[0.00001]
0.00001
3

Bạn có thể xem video giới thiệu hàm lambda tại đây

Hãy chơi Finxter - Hàm Lambda trong Python


Xem video này trên YouTube

Đi đâu từ đây?

Đủ lý thuyết. Hãy thực hành một số

Các lập trình viên được trả sáu con số trở lên vì họ có thể giải quyết vấn đề hiệu quả hơn bằng cách sử dụng trí thông minh máy móc và tự động hóa

Để trở nên thành công hơn trong việc viết mã, hãy giải quyết nhiều vấn đề thực tế hơn cho người thực. Đó là cách bạn trau dồi những kỹ năng bạn thực sự cần trong thực tế. Rốt cuộc, việc sử dụng lý thuyết học tập mà không ai cần là gì?

Bạn xây dựng các kỹ năng mã hóa có giá trị cao bằng cách làm việc trên các dự án mã hóa thực tế

Bạn có muốn ngừng học với các dự án đồ chơi và tập trung vào các dự án mã thực tế giúp bạn kiếm tiền và giải quyết các vấn đề thực sự cho mọi người không?

🚀 Nếu câu trả lời của bạn là CÓ. , cân nhắc trở thành nhà phát triển Python tự do. Đó là cách tốt nhất để tiếp cận nhiệm vụ cải thiện kỹ năng Python của bạn—ngay cả khi bạn là người mới hoàn toàn

Nếu bạn chỉ muốn tìm hiểu về cơ hội làm việc tự do, vui lòng xem hội thảo trên web miễn phí của tôi “Cách xây dựng kỹ năng Python có thu nhập cao của bạn” và tìm hiểu cách tôi phát triển công việc viết mã trực tuyến của mình cũng như cách bạn có thể làm được—từ sự thoải mái của bạn

Tham gia hội thảo trên web miễn phí ngay bây giờ

Chris

Trong khi làm việc với tư cách là một nhà nghiên cứu trong các hệ thống phân tán, Dr. Christian Mayer tìm thấy tình yêu của mình với việc dạy sinh viên khoa học máy tính

Để giúp sinh viên đạt được mức độ thành công Python cao hơn, anh ấy đã thành lập trang web giáo dục lập trình Finxter. com. Ông là tác giả của cuốn sách lập trình nổi tiếng Python One-Liners [NoStarch 2020], đồng tác giả của loạt sách tự xuất bản Coffee Break Python, người đam mê khoa học máy tính, cộng tác viên tự do và chủ sở hữu của một trong 10 blog Python lớn nhất thế giới

Niềm đam mê của anh ấy là viết, đọc và mã hóa. Nhưng niềm đam mê lớn nhất của anh ấy là phục vụ các lập trình viên đầy tham vọng thông qua Finxter và giúp họ nâng cao kỹ năng của mình. Bạn có thể tham gia học viện email miễn phí của anh ấy tại đây

Chủ Đề