如何在python中将float设置为一定数量的小数位数

时间:2017-03-31 18:18:43

标签: python-3.x

我试图将股票的收益率设置为一定数量的小数位,但只要有重复数字,它似乎就会忽略该规则。我从雅虎获得EPS和价格数据,然后将EPS除以价格以获得收益率,然后尝试将其设置为最多四位小数。这适用于每种情况,除非在小数点后第四位有重复数字。例如,如果计算导致数字如.106444444444,python将返回整个数字而不是返回.1044,但如果数字类似于.10452343,则返回.1045。我不知道如果有重复的数字怎么处理这种情况。     from yahoo_finance import Share
    ticker = Share("UTHR")
    price = ticker.get_price()
    EPS = ticker.get_EPS_estimate_current_year()
    earn_yield = float(EPS)/float(price) if EPS else 0
    ey = float('%.4f' % float(earn_yield))*100

1 个答案:

答案 0 :(得分:0)

而不是使用:

time

尝试使用以下内容:

ey = float('%.4f' % float(earn_yield))*100
  • 舍入返回数字在小数点后舍入为n位精度。
  • 移动* 100会在尝试围绕它之前将earn_yield相乘。
  • 我还删除了浮点数,因为默认情况下,ey变量应该在这里返回一个浮点数。

希望能为你解决这个问题!