本地化浮点表示法

4
在Python中,浮点数的表示方法如下:35.45。然而在比利时,表示方法略有不同:34,78。对于我的论文来说,正确的表示方法非常重要。我可以将每个浮点数转换为字符串,并将'.'替换为',',但我想知道是否有其他解决方案。
1个回答

9
您可以使用 str 函数来自 locale 包:
>>> import locale
>>> locale.setlocale(locale.LC_ALL, "nl_BE")
'nl_BE'
>>> locale.str(234.2)
'234,2'

您还可以将本地化字符串转换为浮点数:

>>> locale.atof("23424,2")
23424.2

这是一个适用于程序规模较小的好解决方案。我正在制作一个图形用户界面,需要打印大量浮点数值。我想知道是否有一种方法可以只更改一次而不是多次使用此转换。该程序在Linux环境下运行。 - Driedan
当我尝试使用它时,总是会出现错误:locale.Error: 不支持的语言环境设置。 - Driedan
1
@Driedan,你应该在Linux上使用nl_NL.UTF-8nl_NL。你可以使用locale.format_string方法,它与format % val相同。没有很好的方法来改变标准函数的行为。 - Daniil Ryzhkov

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接