問題タブ [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 投票する
2 に答える
634 参照

iphone - NSDecimalNumberのヘルプが必要

持っているNSDecimalNumberを取得し、1.1を掛けようとしています。

私はこれを持っていますが、機能しません:

アップデート:

これがコード全体です、なぜそれが機能しないのか誰かが知っていますか?

乗算ラインでクラッシュし、エラーが発生しました:*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UITableViewCell decimalNumberByMultiplyingBy:]: unrecognized selector sent to instance 0x5d91a60'

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

iphone - NSDecimalNumberOverflowException エラーの取得

次の行でエラーが発生します: if (! [self.event.managedObjectContext save:&error])。ユーザーが別の数値を textField に入力しなかった場合にのみ発生するため、0.

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

ios - NSNumberFormatter が小数点以下のゼロを受け入れない

同様の質問が寄せられていますが、提供されたソリューションは最新の iOS SDK では機能しないか、この特定のケースには正確に適用できないことがわかりました。

NSNotification を使用してメソッドを呼び出します。これは、ボタン入力からの数字を使用して入力されたときに、UILabel でグループ化記号を使用して数値をフォーマットします。小数点の後にゼロが入力されていない限り、整数と小数でもうまく機能します。例えば ​​2000 と入力すると、2,000 と表示されますが、問題なく入力されています。23.345 を入力すると、それも問題なく表示されます。これらの数値に対して行われた計算はすべて正しく行われます。しかし、0.0001 や 0.2340007 を入力することはできません。小数点の後にゼロを取り、追加することはありません。

元のコードのアイデアは、stackoverflow の別の投稿から入手しました。

フォーマッタのパラメータを使用して(私が試した)微調整をしても、小数点の後にゼロを入力することはできません。

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

objective-c - 長整数の SBJSONParser

iPhone プロジェクトで JSON データを解析するために json-framework を使用しています。しかし、json データに 10432159274 などの多数の数値が含まれていると、NSNumber がオーバーフローします。SBJsonParser.h のドキュメントには、JSON の数値は NSNumber または NSDecimalNumber に変換されると記載されています。大きな整数が NSDecimalNumber として解析されるようにするにはどうすればよいですか? ありがとう。

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

ios - NSDecimalNumberPlaceHolderリーク

ベータ テストの前に Instruments でテストしている iPad アプリがあります。1 つを除いてすべてのメモリ リークを取り除きましたが、それに関する情報は見つかりません。私のコードでは、NSDecimalNumberPlaceHolder のインスタンスであるリーク オブジェクトについて言及していないため、どうすればよいか困惑しています。

確かに私は NSDecimalNumber を使用しています。ユーザー操作ごとに 2 つの小数を作成し、アプリのサイクルを実行するたびに (2 つの NSDecimalNumbers に対して何らかの数学操作を実行します)、この NSDecimalPlaceHolder のインスタンスを 4 つ生成します。作成方法がわからないため、これらの 16 個の btye リークが何度も発生しないように解放または割り当て解除する方法がわかりません。

これらが実際にはリークではない可能性はありますか?

XCode Analyzer を実行しましたが、問題は報告されません。

私がやっていることはこれです:

コントローラーからモデル (analyzer_) に ​​10 進数を送信し、モデル (analyzer_) が操作を実行して結果を返します。

setOperand メソッドは次のようになります。

}

operand_ 「どこか」を保持しないと、BAD_ACCESS クラッシュが発生することに注意してください。私は現在、オペランドと以前に提供されたオペランド (queuedOperand_) が操作される場所でそれを保持し、後で解放します。例えば:

ここで、 performQueuedOperation は次のとおりです。

これが明確でない場合はお知らせください。ありがとう。

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

macos - NSDecimalNumber + decimalNumberWithString:localeに渡すロケール引数:ドット(。)小数点を使用してNSStringで常に機能しますか?

に変換したいNSStringがありNSDecimalNumberます。文字列はサーバーから受信され、常にのようなロケールを使用してフォーマットされen_USます。ユーザーのロケールに関係なく受け入れるを作成したいと思います。数値がユーザーに表示されることはなく、内部計算に使用されます。XXX.YYYXXX,YYYNSDecimalNumberXXX.YYY

通常、次のようなことを行います。

ただし、ユーザーがfr_FRMac OS Xのロケールを実行している場合、それは機能しなくなります。en_USはそれを1ポイント234として解釈しますが、-はそれを1、2、3、4fr_FRとして解釈しますが、どちらも非常に異なる数です。

明らかな解決策は、を使用すること+decimalNumberWithString:locale:です。locale:しかし、MacOSXのすべての国際バージョンで機能するパラメータの引数として何を渡すかはわかりません。私の推測では次のようにします。

これを行うための最良の方法であり、安全ですか?@"en_US"ローカル識別子はMacOSXのすべての国際バージョンで利用できますか、それとも場合によってはNSLocaleを返す可能性がありますnilか?


更新1:これはうまく機能しているようで、より明確です:

NSLocaleDecimalSeparatorはNSLocaleに対して定義された定数であり、-objectWithKey:NSDictionaryと同様にに応答します。のように、任意の小数点記号をフィードできます@","

他の誰かがより良いアイデアを持っていない限り、これが質問に対する最良の答えである可能性が高いと思いますか?

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

objective-c - NSDecimalFormatter と通貨記号: $ の代わりに $US

明らかな何かが欠けているに違いありませんが、これで時間を失いすぎたので、専門家に見てもらいます。希望どおりにフォーマットされた文字列を取得したいだけですが、通貨記号が問題を引き起こしています。記号のみが必要な場合に、ある種の国際コードを使用しています。

この結果: $ 1,250.56 ではなく$ US 1,250.56

シンボルがあるだけなので、ロケールを設定しません:EUR / USD / GBPなど..

0 投票する
0 に答える
548 参照

objective-c - NSDecimalNumberを使用した計算フィールドのNSPredicate

NSDecimalNumber値を使用して、Core Dataの計算フィールド(Appleのドキュメントではバイナリ式)をフィルタリングしたいと思います。

エンティティには、field1とfield2の2つの属性があり、どちらもDecimal型です。

述語は次のとおりです。

しかし、これは機能しません。それは何も返しません。

各属性を単独でフィルタリングすると、機能します。例えば:

どうしたの?

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

ios - NSDecimalNumber は base-10 演算を実行できるはずではありませんか?

NSDecimalNumber基数 10 の算術演算を正しく実行できるはずではありませんか?

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

objective-c - NSDecimalNumber を NSString に変換する

このコードを使用して、md5 文字列ハッシュを取得します

私がこれを行うと、完璧に動作します

でもこれ作るときは

エラーがあります

キャッチされていない例外 'NSInvalidArgumentException' が原因でアプリを終了しています。理由: '-[NSDecimalNumber UTF8String]: 認識されないセレクターがインスタンス 0x61a7080 に送信されました'

userId は NSString です

しかし、それはFacebookのユーザーIDを含み、「3309843」のようなものを試しました

そして、私はまだ同じエラーがあります

更新 私はこれを試しました

それでも同じエラーが発生します。問題はメソッド md5 にあると思います。数字の文字列の md5 を取得できませんか?