数字保留小数点后几位的问题

我将[-0.32695389161796801, -0.31471406408825409, -0.31475407980700348]中的每个元素进行先保留小数点后3位再保留小数点后2位的操作,用如round(round(-0.32695389161796801,3),2)的方式,得到[-0.33000000000000002, -0.32000000000000001, -0.32000000000000001],但我想得到的是[-0.33, -0.32, -0.32],谢谢

阅读 16.7k
1 个回答

在使用Python处理精度很重要的浮点数时,建议使用内置的Decimal库:

from decimal import Decimal
a = Decimal('1.0231212121')
a = round(a,3) # Decimal('1.023')

如果只是要求看起来“精确”,那么也可以用字符串的format方法

'{:.2f}'.format(1.0231212121) # '1.02'
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题