Maximo - скрипт автоматизации - десятичные точки - PullRequest
0 голосов
/ 13 марта 2019

Привет, у меня проблема со статусом.Пример: vendBudget = 1000.00 и totBaseCost = 1000.01, он должен быть НЕ БЮДЖЕТИРОВАН, но я думаю, что он получает только целое число.

totBaseCost = mbo.getDouble("TOTALBASECOST")
totBaseCost1 = "%.2f" % float(totBaseCost)
#totBaseCost1 = "%.2f" % totBaseCost
budgetSet = mbo.getMboSet("BUDGET")
availBudget = 0
if budgetSet is not None:
    budgetMbo = budgetSet.getMbo(0)
    totBudgetAmount = budgetMbo.getFloat("C1BUDTOTCOST")
    estTotCost = budgetMbo.getMboSet("C1ESTTOTCOSE").sum("LINECOST")
    comTotCost = budgetMbo.getMboSet("C1COMMITTED").sum("LINECOST")
    actTotCost = budgetMbo.getMboSet("C1ACTTOTCOST").sum("LINECOST")

    #Available Budget
    availBudget = float(totBudgetAmount) - float(estTotCost) - float(comTotCost) - float(actTotCost)

    availBudget = "%.3f" % availBudget
    if availBudget < 0:
        availBudget = abs(availBudget)

    if (totBaseCost1) > availBudget and availBudget <> 0:
        mbo.setValue("C1BUDGETSTATUS","",11L)
        mbo.setValue("C1BUDGETSTATUS","UNBUDGETED",11L)
    elif (totBaseCost1) <= availBudget:
        mbo.setValue("C1BUDGETSTATUS","",11L)
        mbo.setValue("C1BUDGETSTATUS","BUDGETED",11L)
    elif str(totBaseCost1) == "0.00" and str(availBudget) <> "0.00":
        mbo.setValue("C1BUDGETSTATUS","",11L)
        mbo.setValue("C1BUDGETSTATUS","BUDGETED",11L)

Ответы [ 2 ]

0 голосов
/ 19 марта 2019

Используйте класс psdi.util.MXMath для расчета стоимости, поскольку он использует BigDecimal за кулисами. Посмотрите на эту запись , чтобы узнать, почему вы не используете float / double для расчета денег.

Кроме того, как указал Декс, вы должны использовать метод isEmpty () в mboSet, чтобы определить, получаете вы записи или нет.

0 голосов
/ 14 марта 2019

Python выполняет приведение типов, и это может быть вашей проблемой. Если у вас есть сравнения или назначения 0 (целое число), попробуйте вместо этого использовать 0.0 (число с плавающей запятой).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...