問題タブ [nsdecimalnumber]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
177 参照

.net - Cocoa Decimals および Protocol Buffers、.NET との互換性

私は、CocoaTouch を使用して作成された iOS アプリで Protocol Buffers を使用してきましたが、10 進数の初歩的な間違いに相当するものに遭遇しました。

プロトコル バッファには、ネイティブの 10 進数型はありません。すべての型については、 http://code.google.com/apis/protocolbuffers/docs/proto.html#scalarを参照してください。代わりに、浮動小数点数が 10 進数の代わりに機能するという (明らかに正しくない) 仮定を立てました。丸めの問題があるため、そうではありません。

Cocoa には NSDecimal.h に一連の C 関数があり、代わりに使用すると魅力的に見えます。ただし、.NET で記述されたコードを持つサーバーと通信しているため、両方のシステムが理解できる形式に変換する方法が必要になります。

生の「バイト」型を使用して 2 つのシステム間でデータを転送し、各環境でネイティブの 10 進数型 (Cocoa 側では NSDecimal、.NET 側では Decimal) に変換すると仮定します。進め方がよくわからないのはここです。

どの中間形式を使用する必要がありますか? 2 進化 10 進数は 1 つの可能性のように思えますが、両方のシステムで変換するにはアルゴリズムを自分で実装する必要があります。

.NET と Cocoa の両方で使用できるバイトコード 10 進形式はありますか?

どうもありがとう。

0 投票する
3 に答える
2693 参照

iphone - 認識されないセレクターがインスタンスに送信されました

重複の可能性:
認識されないセレクターがインスタンスに送信されました

このエラーコードで何が起こっているのか誰か教えてもらえますか?男のリンゴは謎めいた。ObjectiveResourceを介して、問題がないことがわかっているデータに電話をかけました。

0 投票する
2 に答える
574 参照

objective-c - NSDecimalNumber を IB の通貨として表示

プロパティ金額を持つコア データ エンティティがあります NSDecimalNumber。このプロパティでは、エンティティのクラスにNSDecimalNumberas 引数で定義されたメソッドがあります。

Interface Builder で、テーブル列をこのプロパティにバインドし ( を使用NSArrayController)、列のセルにNSNumberFormatter. フォーマッタは IB で「通貨」として設定されます。

今、数字を入力しようとすると、次のエラーが表示されます。

どうやら私のセッターメソッドNSNumberNSDecimalNumber. NSNumberおそらく IB ではなくコードでフォーマッターを別の方法で構成できますか、それともas 引数を使用してセッターを追加する唯一のオプションですか?

0 投票する
2 に答える
3304 参照

iphone - コアデータとiPhoneに関するNSDecimalNumberの質問

私はコアデータとiphoneプログラミングにかなり慣れていません。たぶんこれは明白な答えなので、誰かが私にチュートリアルや他のリソースを教えてくれるなら、それは大いにありがたいです!私は通貨を扱っているので10進型のコアデータエンティティを持っています、そして私が読んだすべては通貨を扱うときにNSDecimalNumberを使うように言っています。そうは言っても、新しいオブジェクトを挿入するときに値を設定する方法を私は一生理解できません。これが私が持っているものです

私はここで何が間違っているのですか?前もって感謝します!

0 投票する
1 に答える
1043 参照

ios - エンティティ A の特定のインスタンスからエンティティ B のすべてのインスタンスの合計を取得する

エンティティ A とエンティティ B (iOS Core Data アプリ) の間に対多の関係があります。エンティティ A の特定のインスタンスからエンティティ B のすべてのインスタンスの NSDecimalNumber 属性の合計を取得する必要があります。このチュートリアルまたは例はありますか?

0 投票する
5 に答える
7127 参照

objective-c - NSDecimalNumberの小数部

NSDecimalNumberを使用して通貨の値を格納しています。数値が10未満の場合、数値の小数部分を先行ゼロのNSStringとして返す「cents」というメソッドを作成しようとしています。

そして、01、02などを文字列として99まで返すメソッドを作成しようとしています。この形式で仮数を文字列として返す方法がわからないようです。便利な方法が欠けているような気がしますが、ドキュメントをもう一度見てみると、何も飛び出していません。

0 投票する
1 に答える
70 参照

ios - NSString を NSCFDecimal として扱うことはできますか?

- (BOOL)isEqualToString:(NSString *)aString これらの文字列は、数字を含む辞書のオブジェクトです-(id)objectForKey:(id)aKey

を使用してこれらの文字列のクラスをチェックすると、[object class]どのようにキャストしたとしても、を使用して比較する必要がある数値でNSString *あることが示され続けます。それらで使用したい場合は、エラーがスローされます。NSCFDecimal==isEqualToString

なぜこれが起こっているのか誰でも説明できますか?

0 投票する
1 に答える
664 参照

iphone - Objective-C: NSDate と NSDecimalNumber を使用した時給の計算

NSDate の 2 つのインスタンス (開始時刻と終了時刻) と、1 つの NSDecimalNumber (2 つの日付の間の期間に獲得した金額を表す) があります。私がやろうとしているのは、これら 3 つの変数に基づいて時給を計算することです。機能するものを思いついたのですが、少しやり過ぎに感じたので、もっと簡単で効率的な方法がないか知りたいと思いました。これが私が今していることです。

2 つの NSDates 間の時間を計算する

これを時間に換算すると

時間の double を NSNumber に変換する

NSNumber を NSString に変換する

この文字列を使用して NSDecimalNumber を作成する

元の NSDecimalNumber (結果) をこの新しい時間の NSDecimalNumber 表現で割る

私の理解が正しければ、元の NSDecimalNumber を含む計算を行う唯一の方法は、NSDecimalNumber の別のインスタンスを作成することなので、これらすべての手順を実行する必要があります。正確性を失ったり、不要な手順を実行したりするのではないかと心配しています。アドバイスをありがとう。

0 投票する
2 に答える
707 参照

objective-c - NSDecimalNumber:2つのNaNを合計すると、オーバーフローが発生しますか?

いくつかの奇妙な理由で、私は以下からNSDecimalNumberOverflowExceptionを受け取ります:

NSDecimalNumberのnotANumberのドキュメントには、引数としてNaNを受け取る算術演算は、NaNを返すと記載されているため、これは私には予想外のようです。

1+NaNとNaN+1で同じエラーが発生します...ありがたいことに、1+1でも2が得られます。

何が起こっているのかについて何かアイデアはありますか?

0 投票する
2 に答える
270 参照

objective-c - NSDecimalNumber の初期化を簡素化

私は単純化したい次の構造を持っています。NSNumber vs. NSDecimalNumber コンパイラの警告を取り除くために、NSString (?) を使用する必要がありました。

NSDecimalNumber *ticksSinceSeventies = [NSDecimalNumber decimalNumberWithString:[NSString stringWithFormat:@"%d",[self timeIntervalSince1970]]];

ご協力いただきありがとうございます!