如何围绕一个浮子或双倍向下到猪的第n个小数位。例如
f(3.999999, 1) = 3.9
f(3.42317, 2) = 3.42
f(1.03, 1) = 1.0
我真的只需要四舍五入到小数点后第一位,但我想我会把问题保留为一般性。我看到小猪的小数点到两个地方"问题,但答案没有解释到我可以适应它的程度。感谢
结果数学很容易解决这个问题。只是做:
FLOOR(column * 10^n) / 10^n
答案 0 :(得分:4)
PIG有ROUND_TO。这将根据所需的小数点进行舍入。
B = FOREACH A GENERATE ROUND_TO(input,num_of_decimal_places);
示例:
输入文件:
3.999999
3.42317
1.03
A = LOAD'file'为(num:float); B = FOREACH A GENERATE ROUND_TO(num,2); 转储B;
输出:
(4.0)
(3.42)
(1.03)