Multiply Strings (大数相乘)

Multiply Strings

Multiply Strings 译作字符串相乘,取自 LeetCode 算法训练第 43 题(Multiply Strings),它还有个更加直白的称呼,叫做“大数相乘”。

此题的背景是因为计算机编程语言对于数字实现的进度缺陷和不足进而衍生出来的一道算法题,众所周知,JavaScript 的数字实现是基于 IEEE754 数值标准。在此标准下,会出现以下几种情况

0.1 + 0.2 === 0.3 // false 原因是 0.1 + 0.2 = 0.30000000000000004

0.0000003 // 3e-7

以上是对于浮点数而言,原因是 JavaScript 的数值标准只能最高显示 17 位的浮点精度。对于整数,依旧有这个问题,整数的显示进度是 10^20

1000 * 10000000000000000 * 10 = 100000000000000000000 // 20个0
1000 * 10000000000000000 * 100 = 1e+21

数值范围

以上讲的大概是精度问题,对于数值范围也是会影响到运算,JavaScript 并不能保存所有的数值,他有几个属性,表示数值范围。

阅读更多
Daily Notes

Daily Notes

这篇博客是日常笔记,仅仅用作学习参考。

List

  • core-js 目标是是 ES Next,e5s-shim 是对 ES5 进行兼容,例如 bind 的实现,e5s-shim 对 Function.length 进行了模拟。(感谢 Lucas 老师解答)
  • AOP 面向切面编程
  • 表达式也有返回值