我正在使用JSON Schema验证服务器请求,并且我有一些想要验证 2DP 的值。我使用以下架构来验证这些字段:
'properties': {
'amount': {'type': ['number', 'null'], 'multipleOf': 0.01}
}
这适用于除以 .49 或 .99 结尾的数字之外的所有情况,在这些情况下我会收到错误金额不是 0.01 的倍数(可被整除)
。
这可能是某种浮点错误。如果这是不正确的,我应该如何验证数字达到一定的精度?
最佳答案
为了避免按照上面的建议循环和转换小数,我最终编写了一个自定义验证器:
Validator.prototype.customFormats.currency = function(input) {
if (input === undefined) { return true}
return (input * 100) % 1 === 0
}
关于对于任何以 .49 或 .99 结尾的数字,JSON 架构给出了 multipleOf 0.01 的验证错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42495493/