2024-04-25 22:49:33 发布
网友
在C#中,我可以做(#。#######################。 1.2->1.2 1.234->1.234 1.23456789->1.2345
Afaik,在python中,只有c样式的%.4f,如果需要,它将始终打印到4个小数点,并在末尾填充0。 我不想要那些0
有什么建议能让我达到我所需要的最干净的方法?在
一个可能的解决办法是先打印出来,然后自己修改结尾0,但希望找到更聪明的方法。在
>>>x = 36.2215405525 >>>from decimal import Decimal >>>print Decimal(str(x)).quantize(Decimal('0.0001')) 36.2215
大数字的格式会有所不同,但是,对于您提到的那些:
>>> for x in (1.2, 1.234, 1.23456789): ... print '%.4g' % x ... 1.2 1.234 1.235
这是@Daniel的答案中提到的更现代的{0:0g}.format方法的传统等价物(适用于python3.whatever和2.6或更高版本)。例如,如果您使用的是googleappengine(目前仅支持python2.5),则需要使用%-运算符方法来格式化(不能使用2.6或更好的.format方法)。在
{0:0g}.format
%
.format
看起来您可以将“g”format specifier用于.format()字符串函数(仅在python 2.6+中可用):
.format()
>>> x = 1.2 >>> print "{0:0.4g}".format(x) 1.2 >>> x = 1.234565789 >>> print "{0:0.4g}".format(x) 1.235
这包括小数点前后的数字,这就是为什么得到1.235(四舍五入到1.2345到4位数)。如果你只想让有效数字在右边,你必须做一些有趣的事情,比如
注意,它仍然是圆形的,与您的示例不同。在
大数字的格式会有所不同,但是,对于您提到的那些:
这是@Daniel的答案中提到的更现代的
{0:0g}.format
方法的传统等价物(适用于python3.whatever和2.6或更高版本)。例如,如果您使用的是googleappengine(目前仅支持python2.5),则需要使用%
-运算符方法来格式化(不能使用2.6或更好的.format
方法)。在看起来您可以将“g”format specifier用于
.format()
字符串函数(仅在python 2.6+中可用):这包括小数点前后的数字,这就是为什么得到1.235(四舍五入到1.2345到4位数)。如果你只想让有效数字在右边,你必须做一些有趣的事情,比如
^{pr2}$注意,它仍然是圆形的,与您的示例不同。在
相关问题 更多 >
编程相关推荐