使用MATH_NUMERIC类型

本主题介绍MATH_NUMERIC类型和详细说明指数的处理方式、最大位数和十进制数字的最大数。 它还包括有关以下方面的讨论:

  • 指数 (E)

  • 无效值

  • 操作精度

  • 货币

    MATH_NUMERIC类型是数值字符串类型。 若要使用它,请输入以下格式的参数值:

<OptionalSign><IntegerAndFractionalPart><OptionalExponentPart>  
  

位置

<OptionalSign> 可以是 +-+ 是默认值。

<IntegerAndFractionalPart> 最多为 32 个有效数字,不计算十进制符号。 小数符号特定于 JD Edwards EnterpriseOne 安装的区域设置,通常是句点(.)或逗号(,)。 这些数字可以是所有整数、所有分数或部分整数和部分分数,但不能超过 32。

<OptionalExponentPart> 等效于:

'e' <OptionalSign><ExponentDigits>  

位置

<OptionalSign> 可以是 +-+ 是默认值。

<ExponentDigits> 最多为两位数字。 允许介于 63 和 -63(不包括零)之间的值。

有效值

有效MATH_NUMERIC值的示例:

  • 123.045

  • 4089(注意没有用逗号分隔千位)

  • -9084

  • -230.75

  • 0.010503

  • 1.023e-10,相当于 0.0000000001023

  • 0.097e5 或 0.097e+5,相当于 9700

  • 1.0e-32,相当于 0.00000000000000000000000000000001(这是有效的,因为在这种情况下,忽略整型“0”,即 32 个有效小数位数)。

无效值

无效值取决于值的类型。 太小的小数部分被解释为零(所有有效数字都丢失)。 具有太多有效数字的整数会导致意外结果。 在这种情况下,JD Edwards EnterpriseOne 并不总是引发错误情况。 太大或太小的指数也作为无效值返回。

无效MATH_NUMERIC值的示例:

  • 1034.000000000000000000000000000000001023 - 有效数字过多

  • 1.023e-64 - 指数太小

  • 0.00317e64 - 指数太大

    除了适用于符号和小数点的非数字字符之外,任何其他非数字字符都会导致值无效。

指数 (E)

指数由 JD Edwards EnterpriseOne MATH_NUMERIC提供,作为输入值的便利。 但是,大多数值返回时不带指数(所有 32 个有效数字都可见)。

操作精确性

如果某个操作导致精度损失,则会发生舍入。 例如:

1.9e-31 / 10.0 = 0.000000000000000000000000000002。

1.9e-31 / 100.0 = 0.0000000000000000000000000000

在其他情况下,会发生不可预知的结果,因为当非常大的正值乘以另一个值时。 1.01e32 * 2.053e32 不产生可靠的结果,也不会引发错误。 对于大多数业务方案,不会超过这些范围。

货币

当 JD Edwards EnterpriseOne 业务函数需要货币值时,业务函数始终具有一个单独的参数,用于四个字符的货币代码。 除非使用不同于为 JD Edwards EnterpriseOne 系统配置的默认货币的其他货币,否则不需要传入此代码。

另请参阅

附录 B:数据类型