1. 云栖社区>
  2. >
  3. 正文

自定义UDF函数:double数值转换成高精度BigDecimal__udf函数

作者:用户 来源:互联网 时间:2018-08-19 12:21:19

bigdecimaldoubleudf数值

自定义UDF函数:double数值转换成高精度BigDecimal__udf函数 - 摘要: 本文讲的是自定义UDF函数:double数值转换成高精度BigDecimal__udf函数, import java.math.BigDecimal; import org.apache.hadoop.hive.ql.exec.UDF; /* * 该方法是返回double类型的数值的BigDecimal类型的对

python">import java.math.BigDecimal;
import org.apache.hadoop.hive.ql.exec.UDF;
/*
 * 该方法是返回double类型的数值的BigDecimal类型的对应值,这里返回的样式是字符串类型
 */
public class UDFCastDouble  extends UDF
{
    public String evaluate(Double number)
    {  
    	//doubleValue()是求double类型的原始值,因为number是Double的封装类对象,不是值
        BigDecimal db = new BigDecimal(number.doubleValue());
        //toPlainString()方法是BigDecimal中返回不带指数字段的字符串类型值
        String stringNumber = db.toPlainString();
        return stringNumber;
       
    }
    //使用main方法测试
    public static void main(String[] args) throws Exception
    {
        UDFCastDouble o = new UDFCastDouble();

        System.out.println(o.evaluate(2.001));
        System.out.println(o.evaluate(2.00));
    }
}
//测试结果:
2.000999999999999889865875957184471189975738525390625
2

以上是云栖社区小编为您精心准备的的内容,在云栖社区的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索bigdecimal , double , udf 数值 ,以便于您获取更多的相关知识。