如何将一个浮点数或双精度整数舍入到pig中的第n个小数位。例如
f(3.999999, 1) = 3.9
f(3.42317, 2) = 3.42
f(1.03, 1) = 1.0
我真的只需要四舍五入到小数点后的第一位,但我想我还是把这个问题留作一般性的。我看到了“Pig的十进制四舍五入到两位”的问题,但答案没有解释到我能适应这个问题的程度。谢谢
回答
结果数学很容易解决这个问题。只要做:
FLOOR(column * 10^n) / 10^n
如何将一个浮点数或双精度整数舍入到pig中的第n个小数位。例如
f(3.999999, 1) = 3.9
f(3.42317, 2) = 3.42
f(1.03, 1) = 1.0
我真的只需要四舍五入到小数点后的第一位,但我想我还是把这个问题留作一般性的。我看到了“Pig的十进制四舍五入到两位”的问题,但答案没有解释到我能适应这个问题的程度。谢谢
结果数学很容易解决这个问题。只要做:
FLOOR(column * 10^n) / 10^n
1条答案
按热度按时间q1qsirdb1#
Pig有圆的尾巴。这将根据需要的小数点进行四舍五入。
例子:
输入文件:
a=加载“文件”为(num:float); b=每个a生成一个舍入到(num,2);b排土场;
输出: