在我的 HTML 代码中,有一个让用户输入数字的 input 如下
<input type="number" step="0.01" value={amount} onChange={handleInputChange} />
,在我的 JavaScript 代码中,我希望在用户输入 非0.01倍数的值 的时候,页面报错,所以写了如下代码:
`
function handleInputChange(event) {
const value = event.target.value
const number = parseFloat(value)
// Check if value is a multiple of 0.01
if (!Number.isInteger(number * 100)) {
setError('Ether amount must be a multiple of 0.01.')
} else {
setError('')
}
} `
在实际运行中,发现大部分时候都运行正常,但是如果用户输入1.09, 1.1, 1.11~1.16 这些数值的时候,就会报错。我写了console.log,崩溃的发现在 number * 100 的时候,因为 precision 的问题,会得出一个非常近似,但却不是正确答案的值。
求助大神,这种情况应该怎么办。