云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

阿里云_亚马逊云计算有多厉害_企业级

小七 141 0

所有数据库平台都支持二进制浮点数。ABAP字典对应的内置数据是FLTP。问题是二进制浮点数的处理是特定于平台的。使用二进制浮点数对数据库执行的操作可以产生不同的结果。以前这主要影响opensql的聚合函数AVG。如今,内部优惠券,在"代码下推"时代,FLTP数不仅仅存储在数据库字段中,而是存储在操作数或操作结果中的情况越来越多,例如opensql和ABAP cd中的SQL表达式或SQL函数。对于所有涉及二进制浮点数的操作,必须考虑平台依赖性。

有一个例外。opensql和abapcds CAST表达式的CAST运算符应该具有独立于平台的行为。因此,不允许从FLTP强制转换为任何其他数值类型,因为对于您可能不期望的类型,可能会有依赖于平台的结果。

另一方面,有足够的用例需要将FLTP转换为数据库上的其他数值类型。因此,在7.51版中,ABAP为二进制浮点数提供了以下特殊的转换选项:

通过向聚合函数AVG添加一个新的数据类型,您可以在Open SQL和ABAP CD中定义此函数的结果类型。结果类型可以是DEC、CURR、QUAN以及给定的长度或小数。也可以显式指定FLTP。这个加法还允许您计算数据类型为INT8的参数的平均值,这在基本形式中是不可能的。一个新的内置函数FLTP_TO_DEC允许您将FLTP类型的参数转换为DEC、CURR、QUAN,并使用给定的长度或小数。此功能在ABAP CD中可用,但在开放式SQL中尚不可用。

这两个新功能的结果可能依赖于平台。ABAP CDS的函数FLTP_TO_DEC特别适用于将小数点后的数字文字转换为DEC。不幸的是,ABAP CDS将此类文字视为FLTP类型,大数据与云计算,大数据共享平台,否则

Open SQL Example

该示例演示了聚合函数AVG,该函数没有或带有显式类型规范。输出类似于:

ABAP CDS Example

结果可能类似于:

请注意,小数在这里是被削减的,但不是四舍五入的。

那么去浮点呢?

这个博客是关于二进制浮点数及其平台依赖性的。现在您可能会问,在7.02版中,作为内置数据类型decfloat16和decfloat34引入ABAP语言的十进制浮点数在哪里?尽管它们遵循一个标准(IEEE-754-2008)并克服了二进制浮点数的许多困难,云商城,但并非所有平台都支持它们,无论是应用服务器还是数据库。这就是为什么ABAP字典不能提供真正的内置DECFLOAT类型。现有的DF16_DEC、DF34_DEC、DF16_RAW和DF34_RAW主要用于存储和读取十进制浮点数。在opensql中使用DF16_DEC和DF34_DEC可以执行有限的操作,但在ABAP cd中没有(当然,除了简单的读取)。十进制浮点数迟早会取代二进制浮点数的希望还没有实现。因此,店铺淘客,我们继续使用变通方法。