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
自定义UDF函数:double数值转换成高精度BigDecimal
原创涤生手记 博主文章分类:Hive实战和企业数仓建模 ©著作权
文章标签 udf函数 double 数值 udf BigDecimal UDF udf编程 lua 文章分类 代码人生
-
SpringBoot自定义starter
SpringBoot自定义starter
spring maven ci -
自定义UDF函数:将汉字转换成拼音
工作需求要讲汉字转换成拼音,自定义UDF函数import net.sourcet.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat;import n...
自定义UDF函数 UDF函数 将汉字转换成拼音 UDF UDF编程 -
hive创建自定义函数UDF
自定义udf
自定义udf -
Hive自定义函数之UDF
为了满足用户的个性化需求,Hive被设计成了一个很开放的系统
java 大数据 区块链 hive 自定义函数 -
bidecimal不能转换成double flink bigdecimal转成double
先看现象涉及诸如float或者double这两种浮点型数据的处理时,偶尔总会有一些怪怪的现象,不知道大家注意过没,举几个常见的栗子:典型现象(一):条件判断超预期System.out.println( 1f == 0.9999999f ); // 打印:falseSystem.out.println( 1f == 0.99999999f ); // 打印:true 纳尼?典型
bigdecimal 转 double bigdecimal 转double bigdecimal转double byte数组转double c++ float转double