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