目录

Search

  1. 前言
  2. 使用 Designer
  3. 使用源
  4. 使用平面文件
  5. 使用目标
  6. 映射
  7. Mapplet
  8. 映射参数和变量
  9. 使用用户定义的函数
  10. 使用调试器
  11. 查看数据沿袭
  12. 比较对象
  13. 管理业务组件
  14. 创建多维数据集和维度
  15. 使用映射向导
  16. 附录 , A: 数据类型引用
  17. 附录 , B: 配置 Web 浏览器

Designer 指南

Designer 指南

计算中的整数值

计算中的整数值

在计算中使用整数值时,PowerCenter 集成服务有时会将整数值转换为浮点数,然后再执行计算。 例如,要计算 MOD(12.00, 5),PowerCenter 集成服务会将整数值“5”转换为浮点数,然后执行除法运算。 PowerCenter 集成服务将根据您是否启用高精度将整数值转换为双精度值或小数值。
PowerCenter 集成服务会在以下算术运算中转换整数值:
算术运算
已禁用高精度
已启用高精度
无法引入小数点的函数和计算。
例如,整数的加法、减法、乘法以及 CUME、MOVINGSUM 和 SUM 等函数。
无转换1
小数
可以引入小数点的非科学函数和计算。
例如,整数除法以及 AVG、MEDIAN 和 PERCENTILE 等函数。
双精度型
小数
所有科学函数以及 EXP、LN、LOG、POWER 和 SQRT 函数。
双精度型
双精度型
转换双精度型数据类型最多支持 15 位的精度,而长整型数据类型最多支持 19 位的精度。 因此,在生成精度高于 15 位的长整型值的计算中,精度可能会有损失。
例如,表达式转换包含以下计算:
POWER( BIGINTVAL, EXPVAL )
在执行计算前,PowerCenter 集成服务会将 POWER 函数的输入转换为双精度值。 如果 BIGINTVAL 端口包含长整型值 9223372036854775807,则 PowerCenter 集成服务会将该值转换为 9.22337203685478e+18,失去了最后 4 位的精度。 如果 EXPVAL 端口包含值 1.0,结果端口为长整型,该计算将产生一个行错误,因为结果 9223372036854780000 超出了最大长整型值。
如果在可以生成小数值的计算中使用整数数据类型,并且启用了高精度,PowerCenter 集成服务会将整数值转换为小数值。
对于支持精度高达 28 位数的十进制数据类型的转换,除非结果在高精度模式下生成精度大于 28 位的值,否则计算中不会出现精度损失的情况。 在本例中,PowerCenter 集成服务将结果存储为双精度型。 如果端口精度小于或等于 28 位数且结果在高精度模式下生成精度大于 28 位的值,PowerCenter 集成服务则会拒绝该行。