簡體   English   中英

Oracle中小數轉十六進制

[英]Convert fractional number to Hexadecimal in Oracle

我在數據庫中有一個表,其分數值為 14.65 45 7458.34 34.69 4.7 34

我想將這個小數值轉換為十六進制。

但是 to_hex function 只轉換十進制值 (14) 而不是 (14.65)。

也嘗試使用 to_char- SELECT TO_CHAR(15.33, 'X') FROM DUAL; --->輸出:F

我不想對值進行上限或下限並打印十六進制數。 我要 15.33 --->F.547AE147

將值拆分為 integer 和小數部分,並分別對它們使用TO_CHAR

WITH table_name (value) AS (
  SELECT  15.33 FROM DUAL UNION ALL
  SELECT -15.33 FROM DUAL
)
SELECT value,
       CASE WHEN value < 0 THEN '-' END
       || TO_CHAR(TRUNC(ABS(value)), 'fmXXXXXXXXXX')
       || '.'
       || TO_CHAR(
            ABS(MOD(value, 1))*TO_NUMBER('FFFFFFFF', 'XXXXXXXX'),
            'fm0XXXXXXX'
          ) AS hex
FROM   table_name;

哪些輸出:

價值 十六進制
15.33 F.547AE147
-15.33 -F.547AE147

db<> 在這里擺弄

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM