数字的字符串表示

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: 由于转换发生的环境数量的准确性和最大值,很长的数字表示也可能导致错误。