[解決済み】Swift - StringをDoubleに変換する方法
2022-04-01 05:35:14
質問
BMIのプログラムをswiftで書こうとしています。 StringをDoubleに変換する方法を教えてください。
Objective-Cでは、このようにできます。
double myDouble = [myString doubleValue];
しかし、Swift言語でこれを実現するにはどうしたらいいのでしょうか?
どのように解決するのですか?
Swift 4.2+ 文字列をダブルに変換する
Stringと数値型(Double、Float、Int)間の変換には、新しい型初期化子を使用する必要があります。これは、正しい値を持つ Optional 型 (Double?) を返すか、String が数値でない場合は nil を返します。
注 NSString doubleValueプロパティは、値が変換できない場合(すなわち、不正なユーザー入力)、0を返すので、推奨されません。
let lessPrecisePI = Float("3.14")
let morePrecisePI = Double("3.1415926536")
let invalidNumber = Float("alphabet") // nil, not a valid number
if/letを使用して値をアンラップして使用します。
if let cost = Double(textField.text!) {
print("The user entered a value price of \(cost)")
} else {
print("Not a valid number: \(textField.text!)")
}
フォーマットされた数値や通貨の変換は
NumberFormatter
クラスがあります。
let formatter = NumberFormatter()
formatter.locale = Locale.current // USA: Locale(identifier: "en_US")
formatter.numberStyle = .decimal
let number = formatter.number(from: "9,999.99")
通貨フォーマット
let usLocale = Locale(identifier: "en_US")
let frenchLocale = Locale(identifier: "fr_FR")
let germanLocale = Locale(identifier: "de_DE")
let englishUKLocale = Locale(identifier: "en_GB") // United Kingdom
formatter.numberStyle = .currency
formatter.locale = usLocale
let usCurrency = formatter.number(from: "$9,999.99")
formatter.locale = frenchLocale
let frenchCurrency = formatter.number(from: "9999,99€")
// Note: "9 999,99€" fails with grouping separator
// Note: "9999,99 €" fails with a space before the €
formatter.locale = germanLocale
let germanCurrency = formatter.number(from: "9999,99€")
// Note: "9.999,99€" fails with grouping separator
formatter.locale = englishUKLocale
let englishUKCurrency = formatter.number(from: "£9,999.99")
関連
-
[解決済み] 使用しているSwiftのバージョンを確認するにはどうすればよいですか?
-
[解決済み] Swift Betaのパフォーマンス:配列のソート
-
[解決済み] Swiftでdispatch_onceのシングルトンモデルを使う
-
[解決済み] 2倍値を小数点以下x桁に丸める処理を素早く行う。
-
[解決済み] Swiftで乱数を生成する方法とは?
-
[解決済み] SwiftでURLから画像を読み込む/ダウンロードする
-
[解決済み] SwiftでStringのサブストリングはどのように動作するか
-
[解決済み] Swiftの配列を文字列に変換するには?
-
[解決済み】Swift - URLをエンコードする
-
[解決済み】Swift Stringの文字を置換する方法はありますか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Swift presentViewController
-
[解決済み] 型の不変値に変異型メンバを使用することはできません。
-
[解決済み] 使用しているSwiftのバージョンを確認するにはどうすればよいですか?
-
[解決済み] Swift - 呼出しの余分な引数
-
[解決済み] SwiftUIのFacebookログイン。FacebookのIDをビューに戻すには?
-
[解決済み] Swiftで乱数を生成する方法とは?
-
[解決済み] Swiftの'open'キーワードは何ですか?
-
[解決済み】==と===の違いについて
-
[解決済み】Swiftのenumのカウントを取得する方法は?
-
[解決済み] 非同期ネットワークリクエストのswift forループの実行が終了するまで待つ