Python 3.x 在python中如何将浮点设置为一定的小数位数

Python 3.x 在python中如何将浮点设置为一定的小数位数,python-3.x,Python 3.x,我试图将一只股票的收益率设置为小数点后的某个数字,但每当出现重复的数字时,它似乎忽略了这一规则。我从雅虎获得每股收益和价格数据,然后将每股收益除以价格得到收益率,然后尝试将其设置为最多四位小数。这适用于所有情况,但小数点后第四位有重复数字的情况除外。例如,如果计算结果是.106444这样的数字,python将返回整个数字而不是.1044,但是如果该数字是.10452343这样的数字,它将返回.1045。我不知道如何处理这种情况时,有一个重复的数字。 来自雅虎财经导入共享 ticker=Share

我试图将一只股票的收益率设置为小数点后的某个数字,但每当出现重复的数字时,它似乎忽略了这一规则。我从雅虎获得每股收益和价格数据,然后将每股收益除以价格得到收益率,然后尝试将其设置为最多四位小数。这适用于所有情况,但小数点后第四位有重复数字的情况除外。例如,如果计算结果是.106444这样的数字,python将返回整个数字而不是.1044,但是如果该数字是.10452343这样的数字,它将返回.1045。我不知道如何处理这种情况时,有一个重复的数字。
来自雅虎财经导入共享

ticker=Share(“UTHR”)

price=ticker.get\u price()

EPS=ticker.get\u EPS\u estimate\u current\u year()

收益率=浮动(每股收益)/如果每股收益为0,则浮动(价格)

ey=float('%.4f'%float(收益率))*100

而不是使用:

ey = float('%.4f' % float(earn_yield))*100
请尝试使用以下选项:

ey = round(earn_yield*100, 4)
  • 舍入返回小数点后精确到n位数的数字
  • 在尝试四舍五入之前,移动*100乘以收益率
  • 我还删除了浮点数,因为默认情况下ey变量应该在这里返回浮点数
希望能帮你解决这个问题

而不是使用:

ey = float('%.4f' % float(earn_yield))*100
请尝试使用以下选项:

ey = round(earn_yield*100, 4)
  • 舍入返回小数点后精确到n位数的数字
  • 在尝试四舍五入之前,移动*100乘以收益率
  • 我还删除了浮点数,因为默认情况下ey变量应该在这里返回浮点数

希望能帮你解决这个问题

如果您处理的是财务数据或其他数据,精确计算非常重要,您可能希望使用
Decimal
模块,而不是机器浮动。如果您处理的是财务数据或其他数据,精确计算非常重要,您可能想看看如何使用
十进制
模块而不是机器浮动。