私は Swift 言語で BMI プログラムを作成しようとしています。そして、次のような問題が発生しました: String を Double に変換するにはどうすればよいでしょうか?
Objective-C では、次のようにできます。
double myDouble = [myString doubleValue];
しかし、Swift 言語でこれをどのように実現できるのでしょうか?
ベストアンサー1
Swift 2 アップデートでは、これをより慣用的かつ安全な方法で実行できる新しい failable イニシャライザがあります (多くの回答で指摘されているように、NSString の double 値は数値以外の値に対して 0 を返すため、あまり安全ではありません。つまり、とdoubleValue
は"foo"
同じ"0"
です)。
let myDouble = Double(myString)
"foo"
これはオプションを返すので、 を渡すとdoubleValue
0が返されるような場合、失敗可能な初期化子は を返します。 、、 のいずれかをnil
使用して、guard
if-let
map
Optional<Double>
元の投稿:受け入れられた回答が提案しているように、NSString コンストラクターを使用する必要はありません。次のように簡単にブリッジできます。
(swiftString as NSString).doubleValue