OceanBase 浮點(diǎn)數(shù)字

2021-06-16 10:49 更新

浮點(diǎn)數(shù)字(FLOAT-Point Numbers)可以有小數(shù)點(diǎn),從第一位到最后一位,或者根本沒(méi)有小數(shù)點(diǎn)。您可以選擇在數(shù)字后使用指數(shù)來(lái)增加范圍,例如 1.666 e-20。小數(shù)位數(shù)不適用于浮點(diǎn)數(shù),因?yàn)樾?shù)點(diǎn)后可以出現(xiàn)的位數(shù)不受限制。

注意 
二進(jìn)制浮點(diǎn)數(shù)與 ?NUMBER? 的區(qū)別,在于值是由 OceanBase 數(shù)據(jù)庫(kù)內(nèi)部存儲(chǔ)的。?NUMBER? 數(shù)據(jù)類型使用十進(jìn)制精度存儲(chǔ),所存儲(chǔ)的數(shù)據(jù)都會(huì)精確存儲(chǔ)。二進(jìn)制浮點(diǎn)數(shù)(FLOAT-Point Numbers)是使用二進(jìn)制精度(數(shù)字 0 和 1)存儲(chǔ)的,這種存儲(chǔ)值的方式不能精確地表達(dá)使用十進(jìn)制精度的所有值。

語(yǔ)法

OceanBase 數(shù)據(jù)庫(kù)為浮點(diǎn)數(shù)提供了兩種數(shù)字?jǐn)?shù)據(jù)類型:

  • ?BINARY_FLOAT?,是一種 32 位單精度浮點(diǎn)數(shù)數(shù)據(jù)類型。每個(gè) ?BINARY_FLOAT? 值需要 4 個(gè)字節(jié)。
  • BINARY_DOUBLE,是一種 64 位雙精度浮點(diǎn)數(shù)數(shù)據(jù)類型。每個(gè) BINARY_DOUBLE 值需要 8 個(gè)字節(jié)。
  • 說(shuō)明 
    • 在 NUMBER 列中,浮點(diǎn)數(shù)具有十進(jìn)制精度。
    • 在 BINARY_FLOAT 或 BINARY_DOUBLE 列中,浮點(diǎn)數(shù)具有二進(jìn)制精度。
    • 二進(jìn)制浮點(diǎn)數(shù)暫時(shí)不支持特殊值 infinity 和 NaN。

    取值范圍

    您可以根據(jù)值域范圍指定浮點(diǎn)數(shù)。

    BINARY_FLOAT

    BINARY_DOUBLE

    最大正有限值

    3.40282E+38F

    1.79769313486231E+308

    最小正有限值

    1.17549E-38F

    2.22507485850720E-308

    更多信息

    IEEE754 符合性

    • IEEE 標(biāo)準(zhǔn) 754-1985(IEEE754)
    • OceanBase 浮點(diǎn)數(shù)據(jù)類型的實(shí)現(xiàn)基本上符合電氣和電子工程師協(xié)會(huì)(IEEE)的二進(jìn)制浮點(diǎn)算法標(biāo)準(zhǔn)。

    • 浮點(diǎn)數(shù)據(jù)類型在以下方面符合? IEEE754?
      • SQL 函數(shù)? SQRT? 實(shí)現(xiàn)平方根。
      • SQL 函數(shù) ?REMAINDER? 實(shí)現(xiàn)余數(shù)。
      • 算術(shù)運(yùn)算符一致。
      • 比較運(yùn)算符符合要求。
      • 轉(zhuǎn)換運(yùn)算符符合。
      • 支持默認(rèn)的舍入模式。
      • 支持默認(rèn)的異常處理模式。
      • OceanBase 數(shù)據(jù)庫(kù)暫時(shí)不支持?INF?、?-INF?、?NaN?、?BINARY_FLOAT_NAN?、?BINARY_DOUBLE_NAN? 之類的特殊常量。
      • SQL 函數(shù) ?ROUND? 、?TRUNC? 、CEIL?和?FLOOR?提供了將二進(jìn)制浮點(diǎn)數(shù) ?BINARY_FLOAT、?BINARY_DOUBLE? 舍入為整數(shù)值 ?BINARY_ FLOAT? 和 ?BINARY_DOUBLE? 的功能。
      • SQL 函數(shù) ?TO_CHAR?、?TO_NUMBER?、?TO_ NCHAR?、?TO_BINARY_FLOAT?、?TO_BINARY_DOUBLE? 和 ?CAST? 提供了將二進(jìn)制浮點(diǎn)數(shù) ?BINARY_FLOAT? 、?BINARY_DOUBLE? 舍入為十進(jìn)制數(shù)和十進(jìn)制數(shù)舍入為 ?BINARY_FLOAT? 、 ?BINARY_DOUBLE? 的功能。
    • 浮點(diǎn)數(shù)據(jù)類型在以下方面不符合 IEEE754:
      • -0 被強(qiáng)制為 +0。
      • 不支持與NaN比較。
      • 不支持非默認(rèn)的舍入模式。
      • 不支持非默認(rèn)異常處理模式。



    以上內(nèi)容是否對(duì)您有幫助:
    在線筆記
    App下載
    App下載

    掃描二維碼

    下載編程獅App

    公眾號(hào)
    微信公眾號(hào)

    編程獅公眾號(hào)