Hướng dẫn python round to 2 decimal places with trailing zeros - python làm tròn đến 2 chữ số thập phân với các số 0 ở cuối

Khi bạn đang nói về những số không

>>> "%.2f" % round(2606.89579999999, 2)
'2606.90'

Hoặc sử dụng phong cách hiện đại với chức năng

>>> '{:.2f}'.format(round(2606.89579999999, 2))
'2606.90'
4:

>>> '{:.2f}'.format(round(2606.89579999999, 2))
'2606.90'

và xóa điểm bằng

>>> '{:.2f}'.format(round(2606.89579999999, 2))
'2606.90'
5 hoặc
>>> '{:.2f}'.format(round(2606.89579999999, 2))
'2606.90'
6 (
>>> '{:.2f}'.format(round(2606.89579999999, 2))
'2606.90'
7 đề cập đến kết quả của lệnh trước đó trong bảng điều khiển Python):

>>> _.translate(None, '.')
'260690'

Lưu ý rằng không cần làm tròn ở đây, vì định dạng

>>> '{:.2f}'.format(round(2606.89579999999, 2))
'2606.90'
8 áp dụng cùng một vòng:

>>> "%.2f" % 2606.89579999999
'2606.90'

Nhưng như bạn đã đề cập Excel, có lẽ bạn sẽ chọn sử dụng chức năng làm tròn của riêng mình hoặc sử dụng thập phân, vì

>>> '{:.2f}'.format(round(2606.89579999999, 2))
'2606.90'
9 có thể dẫn đến kết quả kỳ lạ do biểu diễn nổi:

>>> round(2.675, 2)
2.67
>>> round(2606.89579999999, 2)
2606.89

Với số thập phân lượng tử hóa:

>>> from decimal import *
>>> x = Decimal('2606.8950000000001')
# Decimal('2606.8950000000001')
>>> '{}'.format(x.quantize(Decimal('.01'), rounding=ROUND_HALF_EVEN))
'2606.90'

Điều đó, đối với nhiệm vụ ban đầu của bạn, trở thành:

>>> x = Decimal('2606.8950000000001')
>>> int((x*100).quantize(1, rounding=ROUND_HALF_EVEN))
260690

Và lý do làm tròn kỳ lạ đến phía trước với

>>> _.translate(None, '.')
'260690'
0:

>>> x = Decimal(2606.8950000000001)
# Decimal('2606.89499999999998181010596454143524169921875') # internal float repr

Thêm số không vào một chiếc phao sau thập phân trong Python #

Sử dụng hàm

>>> _.translate(None, '.')
'260690'
1 để thêm số không vào phao sau thập phân, ví dụ:
>>> _.translate(None, '.')
'260690'
2. Hàm sẽ định dạng số với chính xác n chữ số theo điểm thập phân.

Copied!

my_float = 3.0 result = format(my_float, '.3f') print(result) # 👉️ '3.000' print(type(result)) # 👉️

Chúng tôi đã sử dụng hàm định dạng để thêm các số không vào một bản nổi sau thập phân.

Hàm lấy một giá trị và một định dạng định dạng và chuyển đổi giá trị thành một biểu diễn được định dạng theo trình xác định định dạng được cung cấp.

Loại

>>> _.translate(None, '.')
'260690'
3 trong định dạng định dạng là viết tắt của ký hiệu điểm cố định.

Copied!

my_float = 3.0 result_1 = format(my_float, '.3f') print(result_1) # '3.000' result_2 = format(my_float, '.4f') print(result_2) # '3.0000' result_3 = format(my_float, '.6f') print(result_3) # '3.000000'

Lưu ý rằng giá trị hàm

>>> _.translate(None, '.')
'260690'
1 trả về là một chuỗi.

Điều này là cần thiết bởi vì Python không giữ bất kỳ số không quan trọng, không đáng kể nào xung quanh.

>>> '{:.2f}'.format(round(2606.89579999999, 2))
'2606.90'
0

Một cách tiếp cận khác là sử dụng một chuỗi được định dạng theo nghĩa đen.

>>> '{:.2f}'.format(round(2606.89579999999, 2))
'2606.90'
1

Các chuỗi chữ được định dạng (F-Strings) Hãy cho chúng tôi bao gồm các biểu thức bên trong chuỗi bằng cách tiền tố chuỗi với

>>> _.translate(None, '.')
'260690'
3.

>>> '{:.2f}'.format(round(2606.89579999999, 2))
'2606.90'
2

Hãy chắc chắn để bọc các biểu thức trong niềng răng xoăn -

>>> _.translate(None, '.')
'260690'
6.

Chúng tôi cũng có thể sử dụng ngôn ngữ nhỏ đặc tả định dạng trong các biểu thức trong các chuỗi F.

>>> '{:.2f}'.format(round(2606.89579999999, 2))
'2606.90'
3