decimal.js的简单使用

node.js

npm install --save decimal.js

var Decimal = require(‘decimal.js’);

ES6

import {Decimal} from ‘decimal.js’;

加减乘除

    const a = 9.99;
    const b = 8.03;

    // 加法
    let c = new Decimal(a).add(new Decimal(b)) 

    // 减法
    let d = new Decimal(a).sub(new Decimal(b))

    // 乘法
    let e = new Decimal(a).mul(new Decimal(b))
    
    // 除法
    let f = new Decimal(a).div(new Decimal(b))

其他(保留几位小数等)

x = new Decimal(255.5)
x.toExponential(5)                       // '2.55500e+2'
x.toFixed(5)                             // '255.50000'
x.toPrecision(5)                         // '255.50'

Decimal.sqrt('6.98372465832e+9823')      // '8.3568682281821340204e+4911'
Decimal.pow(2, 0.0979843)                // '1.0702770511687781839'

// Using `toFixed()` to avoid exponential notation:
x = new Decimal('0.0000001')
x.toString()                             // '1e-7'
x.toFixed()                              // '0.0000001'
### JavaScript 中 Decimal使用及相关问题 #### 使用 `Number` 类型处理十进制数 JavaScript 中并没有专门的 `Decimal` 数据类型,通常使用内置的 `Number` 类型来表示数值,包括整数和浮点数。然而,在涉及精确的小数运算时,可能会遇到精度丢失的问题。 ```javascript let num = 0.1 + 0.2; console.log(num); // 输出: 0.30000000000000004 ``` 为了应对这种不准确性,可以采用第三方库如 `decimal.js` 或者通过字符串操作的方式来进行更精准的计算[^1]。 #### 引入外部库解决精度问题 当需要更高精度的十进制运算时,推荐引入像 `decimal.js` 这样的专用库: ```html <script src="https://cdnjs.cloudflare.com/ajax/libs/decimal.js/10.3.1/decimal.min.js"></script> ``` 之后可以在脚本中创建 `Decimal` 对象并执行各种算术运算而不用担心舍入误差: ```javascript const d1 = new Decimal('0.1'); const d2 = new Decimal('0.2'); // 加法 const sum = d1.plus(d2); console.log(sum.toString()); // 正确输出:"0.3" // 减法 const diff = d1.minus(new Decimal('0.05')); console.log(diff.toString()); // "0.05" ``` #### 浮点数转固定位数小数 有时希望将浮点数转换成指定数量的小数位形式显示出来而不改变其内部存储方式: ```javascript function toFixedFloat(value, digits) { return parseFloat(value.toFixed(digits)); } console.log(toFixedFloat(1.295, 2)); // 显示为:1.30 ``` 此函数利用了原生 `toFixed()` 方法,并将其返回的结果再次解析回 `float` 值以便于后续可能的操作需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值