在项目开发的时候,发现只要数字只要很大的时候相加就会错误,如1220 + 100000000000000000 + 9999999 的时候 结果为100000000010001220,正确应该是100000000010001219,如果加上小数点更是直接被忽略了,如果要精确计算大数字相加甚至是有两位小数的大数字相加,应该如何解决
在项目开发的时候,发现只要数字只要很大的时候相加就会错误,如1220 + 100000000000000000 + 9999999 的时候 结果为100000000010001220,正确应该是100000000010001219,如果加上小数点更是直接被忽略了,如果要精确计算大数字相加甚至是有两位小数的大数字相加,应该如何解决
1: 如果你只是要相加的话, 可以封装add()函数
2: 举个例子吧: 把参数都转换为字符串, 如果有的话以'.'为分割单位
3: 对每个对应的单一数字 进行 加法, 大于10 就进1
4: 就是简单的数字拆分拼装
13 回答13.1k 阅读
7 回答2.3k 阅读
5 回答1.6k 阅读
5 回答1.9k 阅读✓ 已解决
3 回答1.4k 阅读✓ 已解决
6 回答1.4k 阅读✓ 已解决
2 回答1.5k 阅读✓ 已解决
用于支持大数运算的ES 数据类型 BigInt 已经在提案中,chrome 76 实测已经支持,相信很快就要被标准化了,使用 BigInt 可以较为安全地进行大数运算,参见 MDN文档:BigInt。
不过既然是新的数据类型,兼容性是一个问题,如果是直接写脚本的话最好使用一些库来曲线救国,如果开发流程使用了babel 等工具的话可以安装对应的插件,获得最新的语法支持。
不出意外的话,“JavaScript有哪些数据类型”这个经典的面试题的答案里就得增加 BigInt 了.