2

3 つのビュー コントローラーを備えたアプリがあります。1 つ目は、ユーザーが数字を入力する 3 つの UITextField を持つ UIViewController です。これらの数字は、CoreData エンティティに String 属性として格納されます。

2 つ目は UITableView で、CoreData から保存したデータを新しいセルとして表示します。3 番目は詳細 UIViewController で、以前に挿入したすべての数字をユーザーに表示します。問題は、textField の小数点パッドを設定すると、ユーザーには数字とカンマがありますが、倍精度の計算にはドット付きの数字が必要です。コンマを使用すると、機能しないため、数学関数を作成できませ[.....] * [...] = ....ん。

どのように私はそれを理解することができますか?そのコンマを単にドットに変更できますか?

私はこのコードを持っています:

 NSNumberFormatter*nf = [[NSNumberFormatter alloc]init];
[nf setNumberStyle:NSNumberFormatterDecimalStyle];

double result = [myString doubleValue] * [myOtherString doubleValue];
4

2 に答える 2

6

ユーザーのロケールに基づいて、小数点キーパッドにコンマまたはピリオド (ドット) を含める必要があります。これは、ユーザーが慣れているように値を入力できるようにするためです。値を使って計算するには、 a を使用しNSNumberFormatterて入力した文字列を値に変換する必要がありdoubleます。これを行うと、数式が機能します。文字列がユーザーによって入力された場合、orを orに変換するためにdoubleValueorを使用しないでください。ユーザーのロケールを適切に処理するために常に使用します。floatValueNSStringdoublefloatNSNumberFormatter

質問に追加されたコードに基づいて更新します。

数値フォーマッタは使用しません。あなたは私がしてはいけないと言ったことを正確にやっています。コードを次のように変更します。

double firstValue = [[nf numberFromString:myString] doubleValue];
double secondValue = [[nf numberFromString:myOtherString] doubleValue];
double result = firstValue * secondValue;
于 2013-09-28T16:18:56.210 に答える
-3

解決策は非常に簡単です:

  1. Go to Settings > General > International > Regional Format
  2. Now select "United States"

アプリを実行すると、小数点のキーボードでコンマ (,) ではなくドット (.) が表示されます。

于 2015-06-02T10:10:43.750 に答える