數字的字串表示

JavaScript 具有從 Number 到它的 String 表示的本機轉換,適用於從 2 到 36 的任何基礎。

十進位制(基數為 10) 後最常見的表示形式是十六進位制(基數為 16) ,但此部分的內容適用於該範圍內的所有基數。

為了將 Number 從十進位制(基數 10)轉換為十六進位制(基數 16) 字串表示toString 方法可以與 radix 16 一起使用。

// base 10 Number
var b10 = 12;

// base 16 String representation
var b16 = b10.toString(16); // "c"

如果表示的數字是整數,則可以使用 parseInt基數 16 再次完成此操作的逆操作

// base 16 String representation
var b16 = 'c';

// base 10 Number
var b10 = parseInt(b16, 16); // 12

要將任意數字(即非整數)從其 String 表示形式轉換為 Number ,操作必須分為兩部分; 整數部分和分數部分。

Version >= 6

let b16 = '3.243f3e0370cdc';
// Split into integer and fraction parts
let [i16, f16] = b16.split('.');

// Calculate base 10 integer part
let i10 = parseInt(i16, 16); // 3

// Calculate the base 10 fraction part
let f10 = parseInt(f16, 16) / Math.pow(16, f16.length); // 0.14158999999999988

// Put the base 10 parts together to find the Number
let b10 = i10 + f10; // 3.14159

注 1: 注意,由於可能在不同的基礎中表示的差異,結果中可能存在小錯誤。可能希望之後執行某種舍入。
注 2: 由於轉換髮生的環境數量的準確性和最大值,很長的數字表示也可能導致錯誤。