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'
我想知道如何将数字转换为带逗号的格式化 "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'