收藏
回答

slider 滑动value数值精度问题

我设了步长为1,滑动过程会出现精度问题,当前亮度是我用setdata设置的,调整亮度是组件showValue的,三张图都没有进行精度处理。







<button>当前屏幕亮度</button>
<text>{{screenBrightness*100 + '%'}}</text>
<button>调整亮度</button>
<slider bindchange="changeLightness" min="0" max="1" step="0.01" show-value value="screenBrightness"/>
data: {
  networkType: '',
  screenBrightness: 1
},
changeLightness: (e) => {
  wx.setScreenBrightness({
    value: e.detail.value
  ,
  success: () => {
    self.setData({
      screenBrightness: e.detail.value
    })
  }
})},


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

3 个回答

  • 咚咚
    咚咚
    2017-10-07

    大哥问题解决了么,我带小数的滑动也会出现精度丢失的情况

    2017-10-07
    有用
    回复 1
    • 空山心雨
      空山心雨
      2018-07-24

      才瞧见这个通知,过去一年了,我也不记得如何解决的了,但是最近又遇到js精度问题,想来应该一回事。


      直接敲0.1+0.2会等于0.30000...000004,

      解决方法,num=parseFloat(Number(num).toPrecision(12))

      num=parseFloat(Number(num).toPrecision(12))

      先用toPrecision抹平精度,末尾的4,12位精度够用,

      再用parseFloat保留指定位数,或者百分数格式化

      对数值做这个处理即可,这个组件的showValue应该由小程序端处理后展示,如果没有,就隐藏掉它的value,自己另外写个对的盖上。


      ps:想问这位大大,什么样的大哥才会叫我这芳名,我敬他一句有气质。


      2018-07-24
      回复
  • 空山心雨
    空山心雨
    2017-07-03

    win7下

    2017-07-03
    有用
    回复
  • hulk
    hulk
    2017-07-03

    是在什么平台下出现的?

    2017-07-03
    有用
    回复
登录 后发表内容