Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将Talend表达式解码为Java公式_Java_Talend - Fatal编程技术网

将Talend表达式解码为Java公式

将Talend表达式解码为Java公式,java,talend,Java,Talend,我们在Open Studio中有一个Talend作业,表达式中的公式如下: row1.Avg_Cost==null?null: ( ( (row1.IND_Price==null||row1.Avg_Price==null)? row1.Avg_Cost:( row1.Avg_Cost.multiply( (row1.Avg_Cost.

我们在Open Studio中有一个Talend作业,表达式中的公式如下:

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程序:

平均收入=平均成本*((平均成本+独立价格)/平均价格)

当我插入以下值时:

   double AVG_COST = 26363.05462;
    double AVG_PRICE = 26269.28416;
    double IND_SPENDING = 3101;
    double IND_PRICE = 26083;
Talend给我23243.73808作为收入。 解码后的java程序给出:26550.2653

所以,希望这里有人能指出我在破解福尔摩拉的过程中做错了什么


TIA找到了答案。忽略了成本和价格分别乘以0.6和0.4的事实。让一切变得不同。 现在,为什么它是这样编码的,是任何人的猜测-这里没有业务逻辑


有Java BigDecimal/转换逻辑吗?

找到了。忽略了成本和价格分别乘以0.6和0.4的事实。让一切变得不同。 现在,为什么它是这样编码的,是任何人的猜测-这里没有业务逻辑

是否存在Java BigDecimal/转换逻辑