gpt4 book ai didi

json - 定义 JSON 模式货币类型

转载 作者:行者123 更新时间:2023-12-04 00:36:31 24 4
gpt4 key购买 nike

我正在尝试为属性定义 JSON 架构

money: 12.12

我主要关心的是最多应允许 2 位小数。我最初尝试定义这个字段是

money: {
type: 'number',
minimum: 0,
multipleOf: 0.01
}

但是,由于 floating point imprecision这失败了。例如,使用 tv4 验证器,数字 147.41 通过验证,但 147.42 失败。是否有另一种方法来定义最多只允许 2 位小数的数字类型?

似乎“格式”属性的目的是实现这些类型的限制,但如果我这样定义字段:

money: {
type: 'number',
format: 'currency',
minimum: 0
}

那么我该如何指定具有“货币”格式的字段最多只能允许 2 个小数位?

最佳答案

我不喜欢整数值的东西,当涉及到百分比之类的问题时,我发现它并不能解决真正的问题,(这就是其他语言有 Decimal 类型的原因)并且想提供这个非常简单使用字符串和模式的解决方案:

"amount":{
"type": "string",
"pattern": "^(0|([1-9]+[0-9]*))(\.[0-9]{1,2})?$",
"minLength": 1,
"description": "A Monetary Amount",
"examples": [
"0",
"0.00",
"0.05",
"19.95",
"255.5",
"120000"
]
}

如果您不想要,可以删除 minLength

关于json - 定义 JSON 模式货币类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40886252/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com