使用 MATH_NUMERIC 类型

本主题介绍了 MATH_NUMERIC 类型并详细说明了指数的处理方式、数字的最大位数以及小数的最大位数。 它还包括有关以下内容的讨论:

  • 指数 (E)

  • 无效值

  • 操作精度

  • 货币

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

<OptionalSign><IntegerAndFractionalPart><OptionalExponentPart>  

其中

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

  • <IntegerAndFractionalPart> 是最大数值的 32 有效数字,不包括小数点符号。 小数点符号对于 JD Edwards OneWorld 安装来说是特定于区域设置的 - 通常为句点 (.) 或逗号 (,)。 数字可以是所有整数、所有小数或部分整数和部分小数,但不能超过 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 OneWorld 不会始终导致错误。

太大或太小的指数会返回无效值。

有效 MATH_NUMERIC 值的示例:

  • 1034.000000000000000000000000000001023 - 有效数字太多

  • 1.023e-64 - 指数太小

  • 0.00317e64 - 指数太大

    除适用于符号和十进制符号以外的任何非数字字符都会导致值无效。

指数 (E)

指数由 JD Edwards OneWorld MATH_NUMERIC 提供以便于输入值。 但是,大多数值返回时没有指数 (,所有 32 个有效位都可见) 。

操作精度

如果操作导致精度下降,则会发生舍入。 例如:

1.9e-31 / 10.0 = 0.000000000000000000000000000002

1.9e-31 / 100.0 = 0.000000000000000000000000000000

在其他情况下,会发生不可预知的结果,例如当非常大的正值乘以另一个值时。

1.01e32 * 2.053e32 不生成可靠结果,也不会引发错误。

对于大多数业务方案,不会超出这些范围。

货币

当 JD Edwards OneWorld 业务功能需要货币值时,业务功能会始终对四个字符的货币代码拥有单独的参数。 不必传递此代码,除非您使用的货币不是为 JD Edwards OneWorld 系统配置的默认货币。

另请参阅

附录 A:数据类型