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

佛山网站制作在线php做网站需要的技术

佛山网站制作在线,php做网站需要的技术,普通人怎么样做网站,九江专业制作网站小程序JS的大数运算(注意:原生的只支持整数计算!!!) 一、JS的大数运算(注意:原生的只支持整数计算!!!)1. 数字精度限制2. 大数解决方案2.1. …

JS的大数运算(注意:原生的只支持整数计算!!!)

  • 一、JS的大数运算(注意:原生的只支持整数计算!!!)
    • 1. 数字精度限制
    • 2. 大数解决方案
      • 2.1. 使用 BigInt
      • 2.2. 使用第三方库
    • 3. 总结
    • 4 补充:力扣1922. 统计好数字的数目 (中等) 使用大数运算的例子


一、JS的大数运算(注意:原生的只支持整数计算!!!)

JavaScript 在处理数字时,其默认的数值类型是基于 IEEE 754 标准的双精度浮点数。这个数值类型有一些限制,特别是在进行大数运算时。以下是 JavaScript 中大数运算的简单介绍:

1. 数字精度限制

  • 安全整数: JavaScript 支持的安全整数范围是 (-2^{53} + 1) 到 (2^{53} - 1)(即 Number.MAX_SAFE_INTEGER 的值为 9007199254740991)。超出这个范围的整数计算可能会出现精度丢失(例如, 9007199254740992 会变成 9007199254740992)。

  • 浮点数问题: 由于浮点数的表示方式,某些小数(如 0.10.2 的和)可能无法精确表示。

2. 大数解决方案

由于上述限制,处理大数运算时,可以考虑以下几种方案:

2.1. 使用 BigInt

从 ES2020 开始,JavaScript 引入了 BigInt 类型,用于表示任意大小的整数。你可以通过在数字后添加 “n” 来创建 BigInt:

const bigInt1 = BigInt(9007199254740992)
const bigInt2 = 12345678901234567890n // 后缀 "n" 表示 BigInt
const sum = bigInt1 + bigInt2         // 可以进行大数运算
console.log(sum)                       // 输出: 12345678901234567892nconsole.log(Number(sum))  // 输出: 12345678901234567892

2.2. 使用第三方库

如果你需要支持比 BigInt 更广泛的数值(比如更复杂的数学操作、浮点数等),可以使用大数运算库,例如:

  • Decimal.js: 支持任意精度的十进制运算,适合处理小数。
  • Big.js: 提供了对大浮点数的高精度运算支持。
  • bignumber.js: 可以处理比较大的数值以及高精度的浮点数运算。

使用示例(以 decimal.js 为例):

const Decimal = require('decimal.js');const a = new Decimal(0.1);
const b = new Decimal(0.2);
const sum = a.plus(b); // 精确计算
console.log(sum.toString()); // 输出: "0.3"

3. 总结

在 JavaScript 中,大数运算可以通过 BigInt 来实现任意大小的整数 整数 整数!!!计算,或使用第三方库来处理更复杂的场景(如浮点数和高精度计算)。在处理大数运算时,需要注意原生数值类型的限制,以确保计算的准确性。

4 补充:力扣1922. 统计好数字的数目 (中等) 使用大数运算的例子

链接:csdn链接–作者暂未提供
链接:力扣本题链接

代码如下:

/*** @param {number} n* @return {number}*/
var countGoodNumbers = function (n) {// 此题无法使用暴力算法const MOD = BigInt(10 ** 9 + 7)// ai得到的逻辑思维:// 一个长度为n的字符串,偶数位置可以有02468五种选择,奇数位置可以有2357四种选择// 因此对其进行排列组合,可以得到好数字的个数一共是 (符合偶数位置的数字的个数 * 符合奇数位置的数字的个数)// 即 (5^evenFuhe) * (4^oddFuhe)const evenCount = BigInt(Math.ceil(n / 2)) // 偶数下标的数量const oddCount = BigInt(Math.floor(n / 2)) // 奇数下标的数量const count = (Fuhe(5n, evenCount, MOD) * Fuhe(4n, oddCount, MOD)) % MODreturn Number(count)
}// 快速幂运算的函数实现
const Fuhe = ( a, b, mod ) => {let ans = 1na = a % modwhile(b) {if( b & 1n) ans = (a * ans) % moda = (a * a) % modb >>= 1n}return ans
}


文章转载自:

http://7vbhjSey.tLzbt.cn
http://P5f4OCbQ.tLzbt.cn
http://kWdXJlHO.tLzbt.cn
http://6KDX3fI4.tLzbt.cn
http://DtlpQHPn.tLzbt.cn
http://C7wiP6VE.tLzbt.cn
http://7giU8jyy.tLzbt.cn
http://96OQ9giH.tLzbt.cn
http://RbOLR2Cc.tLzbt.cn
http://Xj9skt0a.tLzbt.cn
http://ZkVvs9MH.tLzbt.cn
http://pKUdSRYi.tLzbt.cn
http://MAawYFiX.tLzbt.cn
http://pQw7wRUI.tLzbt.cn
http://aE02S7Qj.tLzbt.cn
http://P6LpxXQ4.tLzbt.cn
http://reYg8p7r.tLzbt.cn
http://0XpzJefC.tLzbt.cn
http://VEs8KZyj.tLzbt.cn
http://n7ui9u2M.tLzbt.cn
http://jXeHKqcb.tLzbt.cn
http://MZWY5F8k.tLzbt.cn
http://IWAo5ml7.tLzbt.cn
http://VT0Fl6Ye.tLzbt.cn
http://Azhc4Vdk.tLzbt.cn
http://H6eX4AZL.tLzbt.cn
http://jK2Ep6I9.tLzbt.cn
http://N7htJW3A.tLzbt.cn
http://HBC5MmTL.tLzbt.cn
http://I6xsZitN.tLzbt.cn
http://www.dtcms.com/wzjs/711249.html

相关文章:

  • 滕州市建设局网站广昌网站建设制作
  • 国内室内设计网站推荐济南seo网站推广
  • 哪个网站可以做微信引导图青岛官网seo
  • 如何在凡科上做网站昆明企业免费建站
  • 手机建站网站网站建设费用报告
  • 上海seo网站优化软件南山做网站行业
  • 简单地产网站怎么上wordpress文章同步
  • 医药网站 备案crm订单管理系统免费
  • 响应式网站应用wordpress md5
  • 下载别人dede网站模版网站建设 申请报告
  • 免费的企业黄页网站新建网站如何被搜索
  • 有哪些做品牌特卖的网站一级a做爰片付费网站
  • 深圳专业网站制作山西运城网站建设
  • 网站首页线框图怎么做网站建设下什么科目
  • 网站ui设计怎么做青海省公路工程建设总公司网站
  • 旅游网站哪家好又便宜最超值的网站建设
  • 网站建设类公司可以拿哪些项目资金建e室内设计网公众号
  • 深圳企业网站建设费用整站优化关键词推广
  • 国内做网站多少钱免费建站网站 百度一下
  • 做素材网站服务器wordpress可以商用吗
  • 网站流量 名词网页设计品牌故事
  • 推广网站挣钱 优帮云南宁做网站推广nnsom
  • PPT做的好的有哪些网站所有电商平台
  • 专业网站模仿做网站用的
  • 建设社区网站有什么借鉴之处网站建设又叫什么软件
  • 手机网站开发教程绵阳做绵阳做网站网站
  • 河南网站优化推广外包平台
  • wordpress 站中站石家庄市园林局招标
  • app充值网站开发长沙关键词排名首页
  • 网站制作容易吗住院证明图片在线制作