JavaScript 数字的字符串表示形式

示例

JavaScript具有从NumberString表示形式的本地转换,从2到36的任何基数。

十进制(以10底)之后最常见的表示形式是十六进制(以16底),但本节的内容适用于范围内的所有底。


为了将数字从十进制(以10为底)转换为十六进制(以16为底)的字符串表示形式toString方法可以与radix16一起使用。

// 以10为底的数字
var b10 = 12;

// 以16为基数的字符串表示形式
var b16 = b10.toString(16); // "c"

如果所表示的数字是整数,则可以使用进行反操作,parseInt然后再次使用基数16

// 以16为基数的字符串表示形式
var b16 = 'c';

// 以10为底的数字
var b10 = parseInt(b16, 16); // 12

要将任意数字(即非整数)从其String表示形式转换为Number,必须将操作分为两部分;整数部分和小数部分。

6
let b16 = '3.243f3e0370cdc';
// 分为整数和分数部分
let [i16, f16] = b16.split('.');

// 计算以10为底的整数部分
let i10 = parseInt(i16, 16); // 3

// 计算以10为基数的分数
let f10 = parseInt(f16, 16) / Math.pow(16, f16.length); // 0.14158999999999988

// 将基础的10个零件放在一起以找到数字
let b10 = i10 + f10; // 3.14159

注1:由于可能用不同的基数表示的结果不同可能会导致小的误差,因此请务必小心。之后可能需要执行某种舍入操作。
注意2:由于转换所处环境的准确性和最大值,数字的非常长的表示形式也可能会导致错误。