源数据:

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

被折叠的 条评论
为什么被折叠?



