收藏
回答

map 中的maker对象的id属性强转丢失精度点问题?

后端数据是一个19位的数字,传到ID里面去之后回被强转丢失精度,这里能否考虑吧ID支持Number和String 2种类型的,这样有利于长整型数字的使用?

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

1 个回答

  • 微盟
    微盟
    2023-05-23

    精度这个问题是js本身的问题,不是微信不支持。对于位数过长的字段,建议还是使用string类型来处理。

    JavaScript 中的数字类型(Number)采用的是双精度浮点数表示法(IEEE 754),并且有限的位数限制了数字的精确度。当处理较大的整数时,可能会出现精度丢失的问题。

    为了处理较大的整数并保持精确性,你可以使用 JavaScript 的 BigNumber 库,例如 bignumber.jsdecimal.js。这些库提供了处理大数字和高精度计算的功能,可以避免精度丢失的问题。使用 BigNumber 库,你可以将 "1556527765333737472" 作为字符串处理,而不是直接转换为数字类型,以确保数字的精确性。

    2023-05-23
    有用
    回复 1
    • Dreamer
      Dreamer
      发表于移动端
      2023-05-23
      因为map底层的maker对象的id 属性定制的数据类型是number ,导致我即使传string 也会被强转,导致最终事件回传收到的id 精度丢失对应不上原始数据。所以我问这个id 属性是否可以支持数字和字符串二种?
      2023-05-23
      回复
登录 后发表内容