Apache Pig 浮点数 SUM 精度错误
Apache Pig floating number SUM error in precision
我有带有双精度值的行。
然而,它们的总和有额外的浮动数字,我不希望在输出中出现。有什么办法可以避免这个问题吗?
A = LOAD 'test.csv' Using PigStorage(',') AS (
ID: chararray,
COST:double
);
B = GROUP A BY (ID);
C = FOREACH B GENERATE SUM(A.COST);
STORE C INTO 'out.txt' USING PigStorage(',');
输入文件
A,0.51
A,0.51
B,4.81
B,4.81
预期输出文件
A,1.02
B,9.62
实际无效输出文件
10.020000457763672
9.619999885559082
尝试C = FOREACH B GENERATE ROUND(SUM(A.COST)*100.0)/100.0;
编辑
它有效,请参见下面的输出
我有带有双精度值的行。 然而,它们的总和有额外的浮动数字,我不希望在输出中出现。有什么办法可以避免这个问题吗?
A = LOAD 'test.csv' Using PigStorage(',') AS (
ID: chararray,
COST:double
);
B = GROUP A BY (ID);
C = FOREACH B GENERATE SUM(A.COST);
STORE C INTO 'out.txt' USING PigStorage(',');
输入文件
A,0.51
A,0.51
B,4.81
B,4.81
预期输出文件
A,1.02
B,9.62
实际无效输出文件
10.020000457763672
9.619999885559082
尝试C = FOREACH B GENERATE ROUND(SUM(A.COST)*100.0)/100.0;
编辑 它有效,请参见下面的输出