使用新的 Python 格式函数舍入小数

新手上路,请多包涵

如何使用 Python 3.0 format 函数将小数舍入到特定的小数位数?

原文由 Casebash 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 447
2 个回答

这是一个典型的、有用的例子……:

 >>> n = 4
>>> p = math.pi
>>> '{0:.{1}f}'.format(p, n)
'3.1416'

嵌套的 {1} 采用第二个参数,n 的当前值,并按指定应用它(此处,格式的“精度”部分——小数点后的位数),以及外部结果 {0:.4f} 然后应用。当然,您可以根据需要对 4 (或任意位数)进行硬编码,但关键是,您不必 这样 做!

更好…:

 >>> '{number:.{digits}f}'.format(number=p, digits=n)
'3.1416'

…而不是模糊的“参数编号”,例如上面的 0 和 1,您可以选择使用闪亮清晰的参数 _名称_,并将相应的值作为 _关键字_(又名“ _命名_”)参数传递给 format - 如您所见 它的可读性要高得多!!!

原文由 Alex Martelli 发布,翻译遵循 CC BY-SA 2.5 许可协议

基于 [Alex Martelli] 解决方案但使用 Python 3.6.2 的更新答案及其更新的格式语法我建议:

 >>> n=4
>>> p=math.pi
>>> f'{p:.{n}f}'
'3.1416'

但是通过明智地选择你的变量,你的代码变得自我记录

>>> precision = 4
>>> pi = math.pi
>>> f'{pi:.{precision}f}'
'3.1416'

原文由 Wynn 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题