思路:有小数扩大对应倍数最后在除掉

乘法

http://www.nowcoder.com/questionTerminal/6429776e4630435cbc3eeb36bdf41f83

    function multiply (a, b) {
      var f1 = 1, f2 = 1;
// 如果存在小树点则乘以他的0的个数f1,f2分别存储a,b的倍数最后先算a*b扩大的在除以抵消掉
      if (String(a).indexOf(".") != -1) {
        f1 = String(a).length - String(a).indexOf(".") + 1
        f1 = Math.pow(10, f1)
        a = a * f1
      }
      if (String(b).indexOf(".") != -1) {
        f2 = String(b).length - (String(b).indexOf(".") + 1)
        f2 = Math.pow(10, f2)
        b = b * f2
      }
      return a * b / f1 / f2
    }
全部评论
少了括号
1 回复 分享
发布于 2021-04-20 14:34
f1 = String(a).length - String(a).indexOf(".") + 1 这是应该是 -1 更合理吧
1 回复 分享
发布于 2022-07-23 22:31
这个在某一程度上是一个不错的解决方案
点赞 回复 分享
发布于 2023-06-02 14:54 福建

相关推荐

点赞 评论 收藏
分享
评论
16
收藏
分享
牛客网
牛客企业服务