Python Tkinter 格式数字条目用逗号

Python Tkinter Format Number Entry with commas

我想知道如何将数字转换为带逗号的格式化 "number" 格式。我在 Mac OSX。在条目小部件中输入和评估表达式,然后使用以下函数输出到标签小部件:

def evaluate(self, event):
    data = self.e.get()
    self.ans.configure(text = "Answer: " + str(eval(data)))

我需要结果输出为 "number" 格式。例如,如果输出是“34523000”,我希望它说“34,523,000”。

使用 locale 模块。

如果您使用的是 Ubuntu,您可以通过在终端上键入 locale -a 来检查您的语言环境列表。在我的机器上,我看到一长串我可以从中选择的列表,例如“en_US.utf8”。

完成后,返回您的函数并进行以下更改:

import locale
# ...
# ...
# It is better to run this outside your function:
locale.setlocale(locale.LC_ALL, 'en_US.utf8')
# ...
# ...
def evaluate(self, event):
    entry_data = self.e.get()
    data = locale.format("%d", entry_data, grouping=True)
    # ...
    # ...

这是一个使用您提供的示例数据的快速演示:

>>> import locale
>>> locale.setlocale(locale.LC_ALL, 'en_US.utf8')
'en_US.utf8'
>>> locale.format("%d", 34523000, grouping=True)
'34,523,000'