creditrating/BM02_指标计算/偿债能力/EBIT利息保障倍数_三年加权计算.py

39 lines
1.5 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

from fastapi import APIRouter
from pydantic import BaseModel
INDEX = "EBIT利息保障倍数_三年加权计算"
router = APIRouter()
class Params(BaseModel):
当期净利润: float
当期计入财务费用的利息支出: float
当期所得税: float
当期资本化利息支出: float
上期净利润: float
上期计入财务费用的利息支出: float
上期所得税: float
上期资本化利息支出: float
上二期净利润: float
上二期计入财务费用的利息支出: float
上二期所得税: float
上二期资本化利息支出: float
@router.post("/{}".format(INDEX))
def func(p: Params):
try:
ratio1 = (p.当期净利润 + p.当期计入财务费用的利息支出 + p.当期所得税) / (p.当期计入财务费用的利息支出 + p.当期资本化利息支出)
ratio2 = (p.上期净利润 + p.上期计入财务费用的利息支出 + p.上期所得税) / (p.上期计入财务费用的利息支出 + p.上期资本化利息支出)
ratio3 = (p.上二期净利润 + p.上二期计入财务费用的利息支出 + p.上二期所得税) / (p.上二期计入财务费用的利息支出 + p.上二期资本化利息支出)
result = ratio1*0.5 + ratio2*0.3 + ratio3*0.2
return round(result, 2)
except ZeroDivisionError:
return "+inf" # 此处本应为算式无意义,特殊处理为正无穷大
except Exception:
return "计算错误"