1

通貨を格納しようとしています。これは、小数で負/正の通貨になる可能性があります。私は多くの検索を行い、モデルで10進型を使用することが最良の方法であることがわかりました。それは署名された考えではないようです。符号付き整数(小数なし)を格納できるようです。しかし、符号付きの10進数を格納するための情報が見つかりません。

何も見つからないので、見つからないと思います。
もしそうなら、この種の情報をどのように保存しますか?金額がneg/posであるかどうかを説明するブール属性を作成しますか?

4

1 に答える 1

2

CoreData の "Decimal" 型は、"Real" ストレージ クラスによってサポートされる SQLite "Decimal" ストレージ クラスを使用します。

これにより、店舗レベルで負の数がサポートされます。

sqlite> .tables
test
sqlite> .schema
CREATE TABLE test (pk integer primary_key, d double, f float, r real);
sqlite> insert into test (d,f,r) values (-1.0, -1.5, -1.252853);
sqlite> select * from test;
|-1.0|-1.5|-1.252853

ご覧のとおり、SQLite は値を正しく格納します。

目的の C コードでは、次のコードを使用して負の 10 進数でインスタンス化できる NSNumber クラスを使用します。

[NSDecimalNumber numberWithDouble:-1.57];
[NSDecimalNumber numberWithFloat:-1.57];
于 2012-05-09T17:56:51.830 に答える