我想知道如何将数字转换为带逗号的格式化“数字”格式。我在Mac OSX上。在条目小部件中输入和评估表达式,然后使用以下函数将其输出到标签小部件中:
def evaluate(self, event):
data = self.e.get()
self.ans.configure(text = "Answer: " + str(eval(data)))
我需要结果输出为“数字”格式。例如,如果输出是“34523000”,我希望它说“34,523,000”。
答案 0 :(得分:1)
使用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'