1
我們在開放工作室與下面的公式中的表達了Talend工作:解碼了Talend表達成Java公式
row1.Avg_Cost==null?null:
(
(
(row1.IND_Price==null||row1.Avg_Price==null)?
row1.Avg_Cost:(
row1.Avg_Cost.multiply(
(row1.Avg_Cost.multiply(new BigDecimal(0.6))).add(row1.IND_Price.multiply(new BigDecimal(0.4)))
).divide(row1.Avg_Price, java.math.RoundingMode.HALF_UP)
)
).subtract(row1.IND_Spending==null?(new BigDecimal(0.0)):row1.IND_Spending)
)
我解碼這個公式,並通過一個簡單的Java程序運行到:
Avg_Revenue = AVG_COST *((AVG_COST + IND_PRICE)/ AVG_PRICE)
當我插上以下值,:
double AVG_COST = 26363.05462;
double AVG_PRICE = 26269.28416;
double IND_SPENDING = 3101;
double IND_PRICE = 26083;
Talend給我:23243.73808作爲收入。 解碼的java程序給我:26550.2653
所以,希望有人能指出我在解碼forumla時做錯了什麼?
TIA