收藏
回答

微信小程序for循环小数累加为什么会拼接成1.002.003.00 已用parsfloat转换?

代码如下图 新手 钻不出这个坑了 谁可以帮忙看下 谢谢


回答关注问题邀请回答
收藏

4 个回答

  • o0o有脾气的酸奶
    o0o有脾气的酸奶
    2019-12-18

    toFixed的返回值是字符串

    parseFloat(parseFloat(arr[i]).toFixed(2))


    出现NaN是因为你for里写错了

    要么这样for(var i = 0;i < arr.length;i++)

    要么这样for(var i = 1;i <= arr.length;i++){var num = arr[i-1];...}

    要么这样for(var i in arr)

    2019-12-18
    有用 2
    回复 9
    • 一次就好
      一次就好
      2019-12-18
      灰常感谢 需要再转换一次
      2019-12-18
      回复
    • o0o有脾气的酸奶
      o0o有脾气的酸奶
      2019-12-18回复一次就好
      你可以重写Number的toFixed,并且给String也加上toFixed方法
      2019-12-18
      回复
    • o0o有脾气的酸奶
      o0o有脾气的酸奶
      2019-12-18回复一次就好
      重写了之后,就不管是Number类型还是String类型,直接调用toFixed就好,就不用再parseFloat了
      2019-12-18
      回复
    • 一次就好
      一次就好
      2019-12-18回复o0o有脾气的酸奶
      嗯 这样写方便了 但是 现在累加起来得到一个NaN 我想先转成Number类型相加 再保留两位小数
      2019-12-18
      回复
    • 一次就好
      一次就好
      2019-12-18回复o0o有脾气的酸奶
      我看懂了这个转换, 现在的问题是我累加得到了NaN 不知道如何累加了  说到底 我想实现的是小数 累加 [哭笑]
      2019-12-18
      回复
    查看更多(4)
  • 2019-12-18

    toFixed函数的返回值是字符串

    2019-12-18
    有用 1
    回复 1
    • 一次就好
      一次就好
      2019-12-18
      对 后来知道的 但是就是没想到再pastfloat一次 感觉有点繁琐了
      2019-12-18
      回复
  • LokNum🎣
    LokNum🎣
    2019-12-18

    你怕是 字符串拼接吧

    2019-12-18
    有用
    回复 3
    • 一次就好
      一次就好
      2019-12-18
      要相加  拼接就是因为 这都是字符串类型 刚了解toFixed返回的又是字符串类型了
      2019-12-18
      回复
    • LokNum🎣
      LokNum🎣
      2019-12-18回复一次就好
      cou 变成了 0+‘1.00’+‘2.50’+‘1.50’+NaN
      加出来的cou是个字符串
      2019-12-18
      回复
    • 一次就好
      一次就好
      2019-12-18回复LokNum🎣
      2019-12-18
      回复
  • 风起九万里
    风起九万里
    2019-12-18

    数据类型转换成数字类型试试

    2019-12-18
    有用
    回复 7
    查看更多(2)
登录 后发表内容
问题标签