有关kettle中的数值类型

Kettle数据类型与格式处理详解
这篇博客探讨了Kettle中不同数据类型如Number、Integer、BigNumber在格式和精度设置下的表现。Number类型的值在设置精度后可能不按预期保留小数,而BigNumber类型即使设置格式和精度也未见效果。源代码显示Kettle的数据类型映射到Java的相应类型,例如NUMBER对应Double,BIGNUMBER对应BigDecimal。在增加常量控件中,设置的格式和精度似乎无效,值保持不变。博客还提到了数据类型的Java对应类以及一些未在常量增加控件中起作用的情况。
该文章已生成可运行项目,

源数据:

1、Number类型,格式:0.00

 2.Number类型,#,##0.###

 3.Integer 精度:3

 4.Integer 精度3 (没效果)格式0.00(有效果,但只是整数阶段后加了两个00而已)

 5.Number,精度3,格式0.000(有效保留

 6.Number,精度4(没效果),格式0.000(有效保留

 7.Number,精度2(没效果),格式0.000(有效保留

 8.Number只设置了精度,没效果 

在增加常量这个例子中:

Number类型,值为3.1415926,结果只保留了1位小数

 BigNumber类型,值为3.1415926,结果还是3.1415926

 

BigNumber类型,值为3.1415926,结果还是3.1415926(格式0.000,精确:3,均没有效果)

综上,

查看源代码,可以发现kettle中的数据类型,跟java的对应数据类型如下:

case ValueMetaInterface.TYPE_STRING : parameterType = String.class; break;
case ValueMetaInterface.TYPE_NUMBER : parameterType = Double.class; break;
case ValueMetaInterface.TYPE_INTEGER : parameterType = Long.class; break;
case ValueMetaInterface.TYPE_DATE : parameterType = Date.class; break;
case ValueMetaInterface.TYPE_BIGNUMBER : parameterType = BigDecimal.class; break;
case ValueMetaInterface.TYPE_BOOLEAN : parameterType = Boolean.class; break;
case ValueMetaInterface.TYPE_BINARY : parameterType = byte[].class; break;


简单来说,就是:
STRING : String.class
NUMBER : Double.class
INTEGER : Long.class
DATE : Date.class
BIGNUMBER : BigDecimal.class
BOOLEAN : Boolean.class
BINARY : byte[].class

另外,在增加常量这个控件中,设置什么格式,精度都是没用的。设置的值是多少就是多少,比如3.1415926.

本文章已经生成可运行项目
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值