將nsdecimalnumbers存儲在數據庫中的最佳方式是什麼?像float,real和double這樣的數字類型已經不存在了,因爲保留貨幣使用的精度非常重要。nsdecimalnumber應該如何存儲在數據庫中?
我所考慮的兩種選擇是字符串和存儲兩個整數,一個持有尾數,另一個持有指數。後一種方法面臨的挑戰是我沒有看到一種簡單的方法將nsdecimalnumber中的尾數和指數拉出來。我可以從NSDecimalNumber獲取NSDecimal,但尾數和指數屬性似乎是私有的!也許我可以反轉數字=(尾數* 10 ^指數),但有沒有更好的方法來做到這一點?
我的要求是,我需要在數據庫中的該字段上執行一些彙總和操作。如果我將其作爲字符串存儲,則執行此計算可能會更困難。我仍然需要編寫一個自定義函數來總結數據庫中的尾數和指數,所以也許它仍然很重。
編輯:我可以訪問指數,但尾數保持奇怪的方式...在調試器中戳它顯示它是一個short(int)數組。
你意識到NSDecimal是在NSDecimal.h中定義的,如果你只是在按住cmd的情況下雙擊就可見?它也列在文檔中,雖然它說這些字段是私人的。 – 2010-10-12 21:45:38
是的,我知道我現在可以訪問它們,但是尾數保留爲一系列短整數。我猜這是unsigned long long的實現細節?如何從一系列短整數中可靠地讀取數據? – Ying 2010-10-13 12:16:40