当前位置: 首页 > news >正文

国家建设工程质量检查标准网站广告设计专业毕业去哪就业

国家建设工程质量检查标准网站,广告设计专业毕业去哪就业,wordpress禁止自适应,怎么申请公司网站注册Decimal 是什么 想必大家在用js 处理 数字的 加减乘除的时候,或许都有遇到过 精度不够 的问题,还有那些经典的面试题 0.20.1 ! 0.3, 至于原因,那就是 js 计算底层用的是 IEEE 754 ,精度上有限制, 那么Deci…

Decimal 是什么

想必大家在用js 处理 数字的 加减乘除的时候,或许都有遇到过 精度不够 的问题,还有那些经典的面试题 0.2+0.1 !== 0.3,
至于原因,那就是 js 计算底层用的是 IEEE 754 ,精度上有限制,
那么Decimal.js 就是帮助我们解决 js中的精度失准的问题。

原理

  • 它的原理就是将数字用字符串表示,字符串在计算机中可以说是无限的。
  • 并使用基于字符串的算术运算,以避免浮点数运算中的精度丢失。它使用了一种叫做十进制浮点数算术(Decimal Floating Point Arithmetic)的算法来进行精确计算。
  • 具体来说,decimal.js库将数字表示为一个字符串,其中包含整数部分、小数部分和一些其他的元数据。它提供了一系列的方法和运算符,用于执行精确的加减乘除、取模、幂运算等操作。

精度丢失用例

const a = 31181.82
const b = 50090.91
console.log(a+b) //81272.73000000001

Decimal 的引入 与 加减乘除

如何引入

npm install --save decimal.js  // 安装
import Decimal from "decimal.js"  // 具体文件中引入
// 加let a = 1
let b = 6 
// a 与 b 可以是 任何类型,Decimal 内部会自己处理兼容
// 下面两种都可以 可以带 new 也不可以不带 new(推荐带new)
let res = new Decimal(a).add(new Decimal(b)) 
let res = Decimal(a).add(Decimal(b))// 减js 代码解读复制代码let a = "4"
let b = "8"
// a 与 b 可以是 任何类型,Decimal 内部会自己处理兼容
// 下面两种都可以 可以带 new 也不可以不带 new
let res = new Decimal(a).sub(new Decimal(b)) 
let res = Decimal(a).sub(Decimal(b))// 乘js 代码解读复制代码let a = 1
let b = 6 
// a 与 b 可以是 任何类型,Decimal 内部会自己处理兼容
// 下面两种都可以 可以带 new 也不可以不带 new
let res = new Decimal(a).mul(new Decimal(b)) 
let res = Decimal(a).mul(Decimal(b))// 除js 代码解读复制代码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

关于保存几位小数相关

//查看有几位小数 (注意不计算 小数点 最后 末尾 的 0)
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)
// 向上取整
Decimal.ROUND_UP //四舍五入
ROUND_HALF_UP //(主要)// 使用例子
let num2 = 0.2
let num3 = 0.1
let res = new Decimal(num2).add(new Decimal(num3)).toFixed(2, Decimal.ROUND_HALF_UP)
console.log(res); //返回值是字符串类型

超过 javascript 允许的数字

如果使用超过 javascript 允许的数字的值,建议传递字符串而不是数字,以避免潜在的精度损失。

new Decimal(1.0000000000000001); // '1'
new Decimal(88259496234518.57); // '88259496234518.56'
new Decimal(99999999999999999999); // '100000000000000000000'new Decimal(2e308); // 'Infinity'
new Decimal(1e-324); // '0'new Decimal(0.7 + 0.1); // '0.7999999999999999'

可读性

与 JavaScript 数字一样,字符串可以包含下划线作为分隔符以提高可读性。

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(); // '0b110101011.1111'
z.toBinary(13); // '0b1.101010111111p+8'x = new Decimal("0b1.1111111111111111111111111111111111111111111111111111p+1023"
);
// '1.7976931348623157081e+308'
http://www.yayakq.cn/news/427428/

相关文章:

  • 访问最多技术网站排名网站首页地址 网站域名
  • 网站安全检测方法东华建设官方网站
  • 成都三合一网站建设公共建设工程中心网站
  • 建网站软件有哪些建筑木工模板承包报价单
  • 怎样做建网站做淘客企业网站设计意义
  • wordpress网站流量无锡专业制作外贸网站的公司
  • 建设银行临夏分行网站网站建设肆金手指排名2
  • 坂田建设网站什么网站可以找免费模板
  • 无锡网站排名哪里有做宣传图片的软件
  • 徐汇区网站建设南昌网站建设公司排行榜前十
  • 电商网站建设需求分析 实例题韩国优秀平面设计网站有哪些
  • 陕西西安网站设计公司网站建设的软件平台
  • 网站建设论文开题报告范文成都软件培训机构排名榜
  • 个人网站制作手绘易语言怎么把网站音乐做进去
  • 免费申请qq号注册官网崇左seo
  • 建站宝盒哪个牌子好光速网络网站
  • 网站内链检查wordpress 短信验证
  • 大连网站建设公司领超科技怎么样招商加盟网站模板程序
  • 食品网站建设方案项目书网站建设准备工作总结
  • 网站信息 订阅如何做房产网站建设什么类型
  • 大淘客网站怎么做网页qq登录怎么进不去
  • 广东建设执业资格注册管理中心网站做阀门销售在哪个网站上做好
  • 企业网站建设规划设计任务书取商标名字神器
  • 互联网站开发能发锚文本的网站
  • 开发网站需要多少资金免费广告设计网站
  • 大朗镇住房规划建设局网站青岛城阳网站设计
  • 网站建设求职要求天津网站建设咨询
  • 搜狗站长工具综合查询wordpress编辑器哪个好
  • 网站注册模板产品小程序如何制作
  • 医疗网站建设好么电商到底干嘛的