我正在开发 React 项目。
我有一个用例,我必须在号码<Input>
上添加步骤属性标签。该步骤属性将是动态的。基于数组数据。
数组数据为[{ precision: 2 }, { precision: 4 }, { precision: 5 }]
.
所以我生成如下步骤:
<input type="number" step={ 10 ** -precision } >
这里10 ** -precision
将输出:
0.01 表示精度 = 2
0.0001 表示精度 = 4
精度为 0.00001 = 5
这就是我想要的,并且它在 Firefox 和 Opera 中运行良好。
但 Chrome 是问题所在,Chrome 的输出为 10 ** -4
是 0.00009999999999999999
。这对我来说是个坏事。
Chrome 的输出在 10 ** -3
之前都是正确的之后打印错误。
我的 Chrome 版本是:74.0.3729.131 操作系统:MacOs Mojave:10.14.4
最佳答案
可能是浮点精度问题。
如果您只需将其作为属性传递给标签,您可以尝试
<input type="number" step={ (10 ** -precision).toFixed(precision) } />
关于javascript - Chrome-Javascript : Negative Exponent Calculation is wrong for > -3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56080811/