JavaScript 进制之间的转换、大数或小数精度丢失、js不同进制的表示(分享)

1. toString(radix)

把十进制转换为其他进制

// 2 <= radix <= 36
// num:为十进制
let num = 10
// 要把十进制转换为多少进制
console.log(num.toString(2)) // '1010'

2. parseInt(string, radix)

把其他进制转换为十进制

// 2 <= radix <= 36
// 把 1010 作为二进制转换,返回值为十进制
console.log(parseInt("1010", 2)) // 10

// 把 1010 作为八进制转换,返回值为十进制
console.log(parseInt("1010", 8)) // 520

3. 0.1 + 0.2 !=== 0.3

小数精度丢失

// js 底层是把十进制转换为二进制,进行计算再返回,会出现精度丢失问题
console.log(0.1 + 0.2) // 0.30000000000000004

// 解决方案,先变为整数,计算完后转为小数
(0.1 * 10 + 0.2 * 10) / 10

4. BigInt()

大数精度丢失

// 当数值过大也会出现精度丢失的问题,大于 2^53 - 1 的整数
console.log(1000000000000000000000) // 1e+21

console.log(BigInt(1000000000000000000000)) // 1000000000000000000000n

5. js不同进制的表示

let num1 = 99    // 十进制
let num2 = 0xff  // 十六进制,前缀单词不区分大小写,0x/0X
let num3 = 077   // 八进制
let num4 = 0b11  // 二进制
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值