decimal.js解决js小数点运算精度丢失不准确示例代码
代码语言:html
所属分类:其他
代码描述:decimal.js解决js小数点运算精度丢失不准确示例代码,decimal.js是一个的任意精度十进制类型JavaScript库
代码标签: decimall 小数点 运算 精度 丢失 不准确 示例 代码
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width,initial-scale=1.0,maximum=1.0,minimum=1.0,user-scalable=0" /> <script type="text/javascript" src="//repo.bfw.wiki/bfwrepo/js/decimal.js"></script> <script type="module"> import Decimal from '//repo.bfw.wiki/bfwrepo/js/decimal.mjs'; //加 let a = 1 let b = 6 // a 与 b 可以是 任何类型,Decimal 内部会自己处理兼容 // 下面两种都可以 可以带 new 也不可以不带 new let res = new Decimal(a).add(new Decimal(b)) let res2 = Decimal(a).add(Decimal(b)) //减 //let a = "4" //let b = "8" // a 与 b 可以是 任何类型,Decimal 内部会自己处理兼容 // 下面两种都可以 可以带 new 也不可以不带 new //let res3 = new Decimal(a).sub(new Decimal(b)) //let res4 = Decimal(a).sub(Decimal(b)) //乘 //let a = 1 //let b = 6 // a 与 b 可以是 任何类型,Decimal 内部会自己处理兼容 // 下面两种都可以 可以带 new 也不可以不带 new //let res5 = new Decimal(a).mul(new Decimal(b)) //let res6 = Decimal(a).mul(Decimal(b)) //除 //let a = 1 //let b = 6 // a 与 b 可以是 任何类型,Decimal 内部会自己处理兼容 // 下面两种都可以 可以带 new 也不可以不带 new //let res = new Decimal(a).div(new Decimal(b)) //let res = Decimal(a).div(Decimal(b)) //注意 //上面的结果是 一个 Decimal 对象,你可以转换成 Number 或则 String //let res = Decimal(a).div(Decimal(b)).toNumber() // 结果转换成 Number //let res = Decimal(a).div(Decimal(b)).toString() // 结果转换成 String //关于保存几位小数相关 y = new Decimal(987000.000) y.sd() // '3' 有效位数 y.sd(true) // '6' 总共位数 // 保留 多少个位数 (小数位 会补0) x = 45.6 x.toPrecision(5) // '45.600' // 保留 多少位有效位数(小数位 不会补0,是计算的有效位数) x = new Decimal(9876.5) x.toSignificantDigits(6) // '9876.5' 不会补0 只是针对有效位数 // 保留几位小数 , 跟 js 中的 number 一样 //toFixed x = 3.456 // 向下取整 x.toFixed(2, Decimal.ROUND_DOWN) // '3.45' (舍入模式 向上0 向下1 四舍五入 4,7) // 向上取整 x = new Decimal(123.4567) y = new Decimal('123456.7e-3') z = new Decimal(x) x.equals(y) && y.equals(z) && x.equals(z) // true // Precision loss from using numeric literals with more than 15 significant digits. new Decimal(1.0000000000000001) // '1' new Decimal(88259496234518.57) // '88259496234518.56' new Decimal(99999999999999999999) // '100000000000000000000' // Precision loss from using numeric literals outside the range of Number values. new Decimal(2e+308) // 'Infinity' new Decimal(1e-324) // '0' // Precision loss from the unexpected result of arithmetic with Number values. new Decimal(0.7 + 0.1) // '0.7999999999999999' x = new Decimal('2_147_483_647') x = new Decimal('0xff.f') // '255.9375' y = new Decimal('0b10101100') // '172' z = x.plus(y) // '427.9375' z.toBinary() // '.........完整代码请登录后点击上方下载按钮下载查看
网友评论0