1

いくつかの値をsqliteデータベースに保存しています。したがって、データはテキストフィールドから文字列として収集され、doubleに変換されて永続化されます。

これは私が試したものです

NSDecimalNumber answer;
value.answer = [NSDecimalNumber decimalNumberWithString:answerValue];

6532.002をデータとして使用すると、精度が低下します。

この問題を解決する方法についてのアイデア。同様の問題が何度も投稿されていることは理解していますが、いくつかの推奨される解決策を試した後、まだ問題を解決できていません。

ありがとう

4

2 に答える 2

1

浮動小数点数の動作方法が原因で、数値を倍精度浮動小数点値として正確に表すことはできません。そのような精度が必要な場合は、それを表す別の方法を見つける必要があります。いくつかのオプションは、任意精度ライブラリ (このウィキペディアのエントリにリストされているものなど) を使用するか、必要な精度を得るために必要なビット数の固定小数点表現を使用することです。数値のみを表示している場合は、文字列として保持する必要があります。

于 2013-03-05T05:44:17.250 に答える
0

使用する

float value=[textField.text floatValue];
于 2013-03-05T11:36:58.857 に答える