Tôi đang đọc dữ liệu từ một tệp, sửa đổi nó và ghi nó vào một tệp khác. Tệp mới sẽ được đọc bởi một chương trình khác và do đó, điều quan trọng là phải thực hiện định dạng chính xác
Ví dụ: một trong các số trên tệp đầu vào của tôi là:
1.000000
tập lệnh của tôi áp dụng một số toán học cho các cột và sẽ trả về
2.000000
Nhưng những gì hiện đang được trả lại là
2.0
Làm thế nào tôi có thể viết một bản nổi, ví dụ
2.000000
0, như 2.000000
1 vào một tệp?
Melchia
20.8K20 Huy hiệu vàng94 Huy hiệu bạc 109 Huy hiệu đồng20 gold badges94 silver badges109 bronze badges
Đã hỏi ngày 25 tháng 3 năm 2013 lúc 15:48Mar 25, 2013 at 15:48
2
Định dạng nó đến 6 chữ số thập phân:
format[value, '.6f']
Demo:
>>> format[2.0, '.6f']
'2.000000'
Hàm
2.000000
2 biến các giá trị thành các chuỗi theo các hướng dẫn định dạng được đưa ra.Đã trả lời ngày 25 tháng 3 năm 2013 lúc 15:50Mar 25, 2013 at 15:50
Martijn Pieters ♦ Martijn Pieters♦Martijn Pieters
992K277 Huy hiệu vàng3911 Huy hiệu bạc3256 Huy hiệu Đồng277 gold badges3911 silver badges3256 bronze badges
6
Từ Python 3.6, cũng có thể thực hiện định dạng F-String. Điều này trông giống như:
f"{value:.6f}"
Example:
> print[f"{2.0:.6f}"]
'2.000000'
Đã trả lời ngày 16 tháng 9 năm 2020 lúc 2:08Sep 16, 2020 at 2:08
NumessanguisnumessanguisNumesSanguis
5.4144 Huy hiệu vàng39 Huy hiệu bạc71 Huy hiệu đồng4 gold badges39 silver badges71 bronze badges
Tôi đã thử n cách nhưng không có gì hoạt động theo cách mà tôi muốn, cuối cùng, điều này đã làm việc cho tôi.
foo = 56
print [format[foo, '.1f']]
print [format[foo, '.2f']]
print [format[foo, '.3f']]
print [format[foo, '.5f']]
output:
56.0
56.00
56.000
56.00000
Có nghĩa là đối số thứ 2 của
2.000000
3 chiếm các vị trí thập phân mà bạn phải đi lên. Hãy nhớ rằng 2.000000
3 trả về chuỗi.
Đã trả lời ngày 30 tháng 8 năm 2018 lúc 9:17Aug 30, 2018 at 9:17
Iqra.Iqra.Iqra.
5651 Huy hiệu vàng6 Huy hiệu bạc18 Huy hiệu đồng1 gold badge6 silver badges18 bronze badges
Tôi đã gặp vấn đề với việc sử dụng các biến trong chuỗi F. Khi tất cả những người khác thất bại, hãy đọc hướng dẫn sử dụng :]
"Một hậu quả của việc chia sẻ cùng một cú pháp với các chữ viết thông thường là các ký tự trong các trường thay thế không được mâu thuẫn với trích dẫn được sử dụng trong chuỗi theo nghĩa đen được định dạng bên ngoài."
//docs.python.org/3/reference/lexical_analysis.html#f-strings
Trường hợp tại điểm:
my_number = 90000
zeros = '.2f'
my_string = f"{my_number:,{zeros}}"
print [my_string]
90,000.00
my_string = f '{my_number:, {zeros}}'
sẽ không hoạt động, vì các trích dẫn duy nhất.
Báo giá chứa chuỗi F và biến chuỗi được sử dụng trong chuỗi F phải khác nhau. containing the f string and the string variable used in the f string should be different.
Nếu sử dụng các trích dẫn đơn cho biến chuỗi, hãy sử dụng dấu ngoặc kép cho mô -đun F và ngược lại.
Đã trả lời ngày 6 tháng 5 năm 2021 lúc 6:59May 6, 2021 at 6:59
Một câu trả lời sử dụng lệnh định dạng [] ở trên, nhưng bạn có thể muốn xem xét đối tượng thư viện tiêu chuẩn thập phân nếu bạn làm việc với những chiếc phao cần thể hiện một giá trị chính xác. Bạn có thể đặt độ chính xác và làm tròn trong lớp ngữ cảnh của nó, nhưng theo mặc định, nó sẽ giữ lại số lượng số không bạn đặt vào đó:
>>> import decimal
>>> x = decimal.Decimal['2.0000']
>>> x
Decimal['2.0000']
>>> print x
2.0000
>>> print "{0} is a great number.".format[x]
2.0000 is a great number.
Đã trả lời ngày 25 tháng 3 năm 2013 lúc 17:35Mar 25, 2013 at 17:35
1