js Number 最大值的数怎么处理?精度问题解决

 解决0.1 + 0.2 不等于 0.3的问题

方法一:同时扩大倍数再除以相同的倍数

0.1 +0.2
// 0.30000000000000004
(0.1 *10 + 0.2 *10) / 10
// 0.3

方法二:可以使用第三方js库,如big.js或bignumber.js,这些库可以处理任意精度的数值。

js 超过 Number 最大值的数怎么处理?

在 JavaScript 中,超过 Number.MAX_VALUE的数值被认为是 (正无穷大)。

例如使用big.js可以处理两个超过Number.MAX_VALUE的数相加:

// 运算
//  const plus = Big(0.1).plus(0.2); // 加
//  const minus = Big(0.3).minus(0.1); // 减
//  const mul = Big(10.22).times(100); // 乘
//  const div = Big(2.4).div(0.8); // 除
 

big.js使用方法

引入插件

import Big from 'big.js'
1. 创建Big number数据
const number = new Big(.1)
或者
const number = Big(.1)
2. 判断数据相等,比较值的大小
const number1 = new Big(.3)
const number2 = Big(.3)
number1.eq(number2)  // true
number1.eq(.3) // true

number1.gt(number2) // false
若number1大于number2为true,否则为false
3. 加减法运算
const number1 = new Big(.3)
const number2 = number1.plus(.1) // 0.4
const number3 = number1.minus(.1) // 0.2
4. 乘除法运算
const number1 = new Big(.3)
number1.times(3) // 0.9

const number2 = new Big(.8)
number2.div(4) // 0.2
5. 将Big Number转换为字符串
const number = new Big(.3)
number.toExponential(3) // 3.00e-1
将number转换成科学计数法,小保留三位
number.toFixed(3) // '0.300' 转换成保留三位小数的字符串

number.toPrecision(3) // '0.300' 
总位数保留三位,如果整数位是0,不算位数

6. 保留小数
Big(.3).round(3) // 保留三位小数,四舍五入

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值