python中是否有内置的自定义数字格式?
发布时间:2020-12-20 11:15:25 所属栏目:Python 来源:网络整理
导读:在C#中,我可以做(#.####),它在小数点后打印最多4位有效数字. 1.2 – 1.2 1.234 – 1.234 1.23456789 – 1.2345 Afaik,在python中,只有c风格的%.4f,如果需要的话,它总是会打印到最后用0填充的4个小数点. 我不想要那些0. 对于实现我需要的最干净的方法有什么
在C#中,我可以做(#.####),它在小数点后打印最多4位有效数字.
1.2 – > 1.2 1.234 – > 1.234 1.23456789 – > 1.2345 Afaik,在python中,只有c风格的%.4f,如果需要的话,它总是会打印到最后用0填充的4个小数点. 对于实现我需要的最干净的方法有什么建议吗? 一种可能的解决方案是首先打印它并自己修剪结束0,但希望找到更聪明的方法. 解决方法
看起来您可以使用“g”
format specifier作为.format()字符串函数(仅在python 2.6中可用):
>>> 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位数)的原因.如果你只想要右边的有效数字,你必须做一些有趣的事情 >>> x = 1.23456789 >>> # length of the number before the decimal >>> left_sigdigs = len(str(x).partition(".")[0]) >>> format_string = "{0:0." + str(4 + left_sigdigs) + "g}" >>> print format_string.format(x) 1.2346 请注意,它仍然是圆形的,与您的示例不同. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |