我有一個名為 Item 的模型,我在其中更新 unit_price(資料型別為十進制)值,目前我在存盤值時沒有設定任何限制,而是按原樣存盤值。但是現在我可以看到這個 PG 錯誤PG::NumericValueOutOfRange,當值超過限制時。
所以我只是想限制值并在控制臺中檢查一些東西,下面是資料。(在資料中我沒有輸入所有的十進制值)
#<Item id: 167199, description: "192830139", category_id: 10327, unit_id: 5596, weight: 0.1e5, unit_price: 0.4083333333659917816764132553606237816656920077972709552126705653021442494641325536062378168e1
i = Item.find 167199
i.unit_price.to_f
=> 4.083333333659918
#<Item id: 167199, description: "192830139", category_id: 10327, unit_id: 5596, weight: 0.1e5, unit_price: 0.6511366980197836882065909262763993442019943880913510722934069011050182329156169820243980265070876781866034494363303661586489199452739290976143216266200531728395970406461889852558384421962422689303402903e-2
i.unit_price.to_f
=> 0.006511366980197837
我能知道to_f自動減少小數限制的原因是什么嗎?解決這個問題的最佳方法是什么,我只是在考慮一些有限制的截斷。
uj5u.com熱心網友回復:
我能知道to_f自動減少小數限制的原因是什么嗎?
原因是這些to_f方法用于將物件轉換為
另一種方法是使用 .round() 方法
例如:

轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/416215.html
標籤:
