問題タブ [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.
numbers - NSDecimalNumber 長い数値を丸める
NSDecimalNumber に 15 桁以上の大きな数字を出力させようとしています。15 桁では、111,111,111,111,111 と表示されます。フォーマットされている数値が 1111111111111111 であっても、15 桁を超えると 1,111,111,111,111,110 と表示されます。
私の問題を説明する例:
出力は次のようになります。
私が見逃したばかげたことは何ですか?
iphone - iPhone で 10 進数を計算する例
SQL テーブルから 10 進数値をテキスト フィールドとして取得し、それを NSDecimalNumber に変換しています (これは、10 進数値を sqllite に読み書きする方法を知らなかったからです)。
とにかく、これらの 10 進変数で簡単な数学ルーチンを実行しようとしている今、私は壁にぶつかりました。Sum = Balance * Interest_Rate など。アイデアは、私がお金の計算を扱っているということです。
NSDecimal、NSDecimalNumber、またはその両方を使用してこれらの操作を行う方法を教えるサンプル/チュートリアルを知っていますか?
ありがとう。
objective-c - nsdecimalnumberはどのようにデータベースに保存する必要がありますか?
nsdecimalnumbersをデータベースに保存するための最良の方法は何ですか?通貨の使用の精度を維持することが重要であるため、float、real、doubleなどの数値タイプは除外されています。
私が検討した2つの選択肢は、文字列と2つの整数を格納することです。1つは仮数を保持し、もう1つは指数を保持します。後者のアプローチが直面している課題は、仮数と指数をnsdecimalnumberから引き出す簡単な方法がわからないことです。NSDecimalNumberからNSDecimalを取得できますが、仮数と指数のプロパティはプライベートのようです。おそらく、数値=(仮数* 10 ^指数)を逆にすることができますが、これを行うためのより良い方法はありますか?
私が持っている要件は、データベースのこのフィールドに対していくつかの集計合計操作を実行する必要があるということです。文字列として保存すると、この計算を実行するのが難しくなる可能性があります。データベース内の仮数と指数を合計するカスタム関数を作成する必要があるので、おそらくそれでも同じくらい重いでしょう。
編集:指数にアクセスできますが、仮数は奇妙な方法で保持されます...デバッガーでそれを突くと、それがshort(ints)の配列であることがわかります。
objective-c - 別のメソッドからアクセスすると、ObjectivecがNSDecimalNumber値を失う
次のようにJsonデータをNSDecimalNumberに解析しています
これはループ内にあり、各製品が配列に追加されます。最後に、jsonオブジェクトを解放します。
product.Priceの値をループ中に記録すると、値は正しいです。ただし、アプリケーションライフサイクルの後半で、配列内の製品にアクセスして強打すると、EXC_BAD_ACCESSが取得されます。
これは、その後リリースされるjsonデータへの奇妙なポインタの問題ですか?何か案は?NSIntegersとNSStringsの値は問題ないことに注意してください。
objective-c - NSDictionaryは検索時に小数点以下の桁数を失います
私はこのようなjson文字列を持っています
"{" price ":1.0}"、json-frameworkを使用して、このjson文字列をNSDictionaryに変換しています。
今、私は以下のようにNSDictionaryから値を取得しています
結果として小数点以下「1」のみが返され、0はなくなりました。
しかし、私がこのようなjson文字列を持っている場合
"{"price ":1.11}"の場合、正常に機能します。つまり、テキストで1.11が返されます。
私は自分のアプリに価格情報を表示していますが、数字の1を表示するだけではほとんど配線されていないようです:)
1つではなく1.0を取り戻す方法はありますか?
iphone - NSLocaleを使用したNSDecimalNumberを使用したユーロ形式のiPhone通貨のバグ?
私のアプリは金銭的価値を使用しており、ユーザーがiPhoneに設定した通貨と形式でこれらの値を表現したいのですが、テストすると、ドイツのEURO形式に問題があるようです。
通貨形式の文字列から(コアデータに格納するための)10進数を返すメソッドがあります。文字列は、実際にはNSlocaleを使用した別の(同様の)メソッドによってフォーマットされました。
私は英国、米国、日本、ドイツのロケールでテストしましたが、これまでのところ問題を引き起こしているのはドイツだけです。
コードは次のとおりです。渡される文字列は次のとおりです。2,56€</p>
}
'currencyNumber'変数は次のように出力されます:-18446912453607470532000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
一方、他のすべてのロケールでは、NSDecimalNumberとしてCoreDataに保存するために2.56を出力します。
objective-c - NSDecimalNumber の過剰解放
私のアプリは、以下の NSDecimalNumber tempDouble を過剰に解放していると言っています:
問題の行はこれだと思います:
しかし、理由はわかりません。割り当ての後に「割り当て、コピー、または保持」属性を追加する必要がありますか? 以下の「リリース」ステートメントを取り除くと、コードは正常に機能します。
ありがとう、
G
iphone - NSDecimal vs Float(iOS)
いくつかのブログやフォーラムの投稿に出くわしました。通貨を扱うときは、浮動小数点数ではなくNSDecimalNumberを使用する必要があると言われています。NSDecimalNumberの有用性を否定する算術演算を行うには、NSDecimalNumberからFloats/Doublesに変換する必要があることがわかりました。つまり、フロートを使用するだけでなく、変換の煩わしさを気にしないのはなぜですか?
NSDecimalNumberの利点は何ですか?また、NSDecimalNumberに対してどのように算術演算を実行しますか?
フロートには何があり、NSDecimalNumberにはないこのエラーは何ですか?それが、通貨を扱うときにNSDecimalNumberを使用する必要があると人々が言う理由です。エラーを定量化してください。
よろしくお願いします、
Hiren。
iphone - NSDecimalNumberを負にする
NSDecimalNumber
を掛けてネガを回す方法を探してい-1
ます。
これは機能しますが、このような単純なロジックには多すぎるように感じます。これを達成するためのより良い方法を考えられますか?
iphone - iPadの10進ピッカーコントロール
10進数入力用のピッカー/スピナーコントロールをどのように作成するのか疑問に思っています。他のiPhoneアプリでボタンをクリックすると番号ピッカーが表示され、スピナーで番号を移動して必要な番号を選択できるのを見たことがあります。
何か案は?