1
我試圖定義一個JSON架構屬性定義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位小數?
不幸的是,這不是我的選擇。模式中字段的定義必須與用戶輸入的格式相對應,並且我無法合理地要求用戶輸入貨幣金額,單位爲美分,便士等。 –
@Dónal:我知道您會允許用戶輸入全部美元。但是什麼阻止你轉換爲存儲?從技術上講,用戶無論如何都要輸入一個字符串 - 您已經將其轉換爲浮點值。 –
我沒有簡單的方法來攔截這些值,將它們從美分轉換爲美元,反之亦然。表單中輸入的金額直接存儲在Firebase中。由模式定義的值將是那些持久化的值,我完全依賴於模式進行驗證 –