Hướng dẫn add comma in string python - thêm dấu phẩy trong chuỗi python

Tôi có một giá trị chạy qua chương trình của mình để đưa ra một số được làm tròn đến 2 vị trí thập phân ở cuối, như thế này:

print ("Total cost is: ${:0.2f}".format(TotalAmount))

Có cách nào để chèn một giá trị dấu phẩy cứ sau 3 chữ số còn lại của dấu thập phân không?

ví dụ. value = -12345672 print (format (value, ',d')) 3 trở thành value = -12345672 print (format (value, ',d')) 4 hoặc value = -12345672 print (format (value, ',d')) 5 trở thành value = -12345672 print (format (value, ',d')) 6.

John Kugelman

338K67 Huy hiệu vàng509 Huy hiệu bạc560 Huy hiệu Đồng67 gold badges509 silver badges560 bronze badges

Đã hỏi ngày 3 tháng 3 năm 2011 lúc 11:52Mar 3, 2011 at 11:52

0

Nếu bạn đang sử dụng Python 3 trở lên, đây là một cách dễ dàng hơn để chèn dấu phẩy:Python 3 or above, here is an easier way to insert a comma:

Cách đầu tiên

value = -12345672 print (format (value, ',d'))

hoặc một cách khác

value = -12345672 print ('{:,}'.format(value))

Đã trả lời ngày 13 tháng 8 năm 2014 lúc 8:18Aug 13, 2014 at 8:18

CooldealCooldealcooldeal

3413 Huy hiệu bạc2 Huy hiệu đồng3 silver badges2 bronze badges

1

Bạn có thể sử dụng value = -12345672 print (format (value, ',d')) 7 nếu value = -12345672 print (format (value, ',d')) 8 đại diện cho tiền. Nó hoạt động trên Python

>>> locale.setlocale(locale.LC_ALL, '') 'en_US.utf8' >>> locale.currency(123456.789, symbol=False, grouping=True) '123,456.79'

Lưu ý: Nó không hoạt động với locale value = -12345672 print (format (value, ',d')) 9 để bạn nên đặt một số địa điểm khác trước khi gọi nó.

Đã trả lời ngày 3 tháng 3 năm 2011 lúc 12:17Mar 3, 2011 at 12:17

JFSJFSjfs

384K183 Huy hiệu vàng949 Huy hiệu bạc1621 Huy hiệu Đồng183 gold badges949 silver badges1621 bronze badges

'{:20,.2f}'.format(TotalAmount)

Đã trả lời ngày 3 tháng 3 năm 2011 lúc 11:57Mar 3, 2011 at 11:57

Peter Kellypeter KellyPeter Kelly

Phù bằng vàng 14K652 Huy hiệu bạc62 Huy hiệu đồng6 gold badges52 silver badges62 bronze badges

Một cách khác rất ngắn là

value = -122212123.12 print(f"{value:,}")

Đã trả lời ngày 8 tháng 9 năm 2021 lúc 11:16Sep 8, 2021 at 11:16

T ht hT H

1872 Huy hiệu bạc6 Huy hiệu đồng2 silver badges6 bronze badges

1

Điều này không đặc biệt thanh lịch nhưng cũng nên hoạt động:

a = "1000000.00" e = list(a.split(".")[0]) for i in range(len(e))[::-3][1:]: e.insert(i+1,",") result = "".join(e)+"."+a.split(".")[1]

Đã trả lời ngày 3 tháng 3 năm 2011 lúc 12:32Mar 3, 2011 at 12:32

ThR37ThR37ThR37

3,8166 huy hiệu vàng34 Huy hiệu bạc40 Huy hiệu đồng6 gold badges34 silver badges40 bronze badges

1

Một chức năng hoạt động trong Python2.7+ hoặc Python3.1+

def comma(num): '''Add comma to every 3rd digit. Takes int or float and returns string.''' if type(num) == int: return '{:,}'.format(num) elif type(num) == float: return '{:,.2f}'.format(num) # Rounds to 2 decimal places else: print("Need int or float as input to function comma()!")

Đã trả lời ngày 14 tháng 3 năm 2016 lúc 18:01Mar 14, 2016 at 18:01

dnaman7dnaman7dnaman7

511 Huy hiệu bạc3 Huy hiệu đồng1 silver badge3 bronze badges

0

Các câu trả lời trên đẹp hơn rất nhiều so với mã tôi đã sử dụng trong dự án (không phải nhà) của mình:

def commaize(number): text = str(number) parts = text.split(".") ret = "" if len(parts) > 1: ret = "." ret += parts[1] # Apparently commas aren't used to the right of the decimal point # The -1 offsets to len() and 0 are because len() is 1 based but text[] is 0 based for i in range(len(parts[0]) - 1,-1,-1): # We can't just check (i % 3) because we're counting from right to left # and i is counting from left to right. We can overcome this by checking # len() - i, although it needs to be adjusted for the off-by-one with a -1 # We also make sure we aren't at the far-right (len() - 1) so we don't end # with a comma if (len(parts[0]) - i - 1) % 3 == 0 and i != len(parts[0]) - 1: ret = "," + ret ret = parts[0][i] + ret return ret

Đã trả lời ngày 14 tháng 7 năm 2017 lúc 14:47Jul 14, 2017 at 14:47

3

Các phiên bản mới nhất của Python sử dụng F-String. Vì vậy, bạn có thể làm điều này:

print("Total cost: {total_amount:,}

Miễn là Total_Amount không phải là một chuỗi. Nếu không, bạn cần phải chuyển nó vào một loại số trước như vậy:

value = -12345672 print (format (value, ',d')) 0

Đã trả lời ngày 24 tháng 6 năm 2021 lúc 23:58Jun 24, 2021 at 23:58

Bắt đầu học Python khoảng 5 giờ trước, nhưng tôi nghĩ rằng tôi đã nghĩ ra một cái gì đó cho các số nguyên (xin lỗi, không thể tìm ra phao). Tôi đang học cấp ba, vì vậy cơ hội lớn của mã có thể hiệu quả hơn; Tôi chỉ làm một cái gì đó từ đầu có ý nghĩa với tôi. Nếu bất cứ ai có bất kỳ ý tưởng nào về cách cải thiện với nhiều giải thích về cách thức hoạt động, hãy cho tôi biết!

value = -12345672 print (format (value, ',d')) 1

Đã trả lời ngày 17 tháng 2 năm 2019 lúc 7:31Feb 17, 2019 at 7:31

Tôi cảm thấy thoải mái khi sử dụng như thế này trong Python:

value = -12345672 print (format (value, ',d')) 2

Đã trả lời ngày 12 tháng 11 năm 2020 lúc 6:33Nov 12, 2020 at 6:33

1

Làm thế nào để bạn đặt một dấu phẩy trong một chuỗi?

Bạn có thể sử dụng chức năng chuỗi EndSwith để cho biết nếu một chuỗi kết thúc bằng một chuỗi nhất định.Nếu nó làm vậy thì bạn có thể sử dụng chèn để đặt dấu phẩy.use Insert to place the comma.

Dấu phẩy làm gì trong một chuỗi python?

Bạn có thể sử dụng chức năng phân chia chuỗi python () để chia một chuỗi (bằng dấu phân cách) thành một danh sách các chuỗi.Để phân chia một chuỗi bằng dấu phẩy trong Python, hãy truyền ký tự dấu phẩy "," như một dấu phân cách cho hàm chia ().Nó trả về một danh sách các chuỗi do phân tách chuỗi ban đầu về các lần xuất hiện của ",".pass the comma character "," as a delimiter to the split() function. It returns a list of strings resulting from splitting the original string on the occurrences of "," .

Chủ đề