我设了步长为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 }) } })}, |
大哥问题解决了么,我带小数的滑动也会出现精度丢失的情况
才瞧见这个通知,过去一年了,我也不记得如何解决的了,但是最近又遇到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:想问这位大大,什么样的大哥才会叫我这芳名,我敬他一句有气质。
win7下
是在什么平台下出现的?