私はいくつかの浮動小数点が異なって変換されていることに気付きました。 This question helps me about floating pointsしかし、なぜこれが起こるのかまだ分かりませんか?サンプルコードについて、デバッグモードから2つのスクリーンショットを追加しました。値の例:7.37および9.37。迅速かつ確実に迅速に使用されましたIEEE 754 floating point standard Plsはこれがどう起こるか説明します。変換がどのように異なって終了したか?これはなぜ浮動小数点変換で起こりますか?
if let text = textField.text {
if let number = formatter.number(from: text) {
return Double(number)
}
return nil
}
浮動小数点数は*有限の精度* - あなたがリンクした答えのどの部分がはっきりしていませんか? –
比較http://stackoverflow.com/a/39777334/1187415:数値の表示方法によっては、 'description'や' debugDescription'が使われています。これら2つのメソッドは、文字列への変換に異なる精度を使います。 –
リンクされたQは明らかですが、なぜ7.37が9.37のように収束していないのか分かりません。私は7.37が右から収束する(7.3700000.1)が、9.37は左から収束することを意味する(9.36999.2)。 @マーティンrは、URのおかげで答えが、まだ私には明らかではありません。私はUのコメント – yilmazburk