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
原创涤生手记 ©著作权
文章标签 udf函数 double 数值 udf BigDecimal UDF udf编程 lua 文章分类 代码人生
-
SpringBoot自定义starter
SpringBoot自定义starter
spring maven ci -
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 -
下载debian 镜像 清华
背景在最近一次交付产品功能的过程中,发现该产品的前端镜像包竟然有 500M 之大,从本地上传到前场服务器平均需要 15 分钟,效率实在不高。为了提高交付效率和减少 bug 修复周期,对 docker 镜像体积优化十分有必要。前端工程结构分析在确定优化策略前,必须对项目工程结构和打包发布流程做下梳理。1. 代码目录结构 # 客户端代码 > server node serv
下载debian 镜像 清华 debian镜像源 wheezy docker镜像内容如何查看 ci docker