[SwiftUI, Swift] String型の金額データを円とコンマ付きに変えるFunctionの作り方
まず最初に、String型の金額データ(例:Price: 8000)があるとする。
そのStringデータを、アプリ内で表示、使用するために、円マーク「¥」と3桁のところにコンマを装備したい。
そのためには、まずFunctionを作る。下記がそのコード。このサイトのコードを使用。https://jp-seemore.com/app/15410/
func formatUserInput(input: String, pattern: String) -> String? {
let formatter = NumberFormatter()
formatter.positiveFormat = pattern
if let number = formatter.number(from: input) {
return formatter.string(from: number)
}
return nil
}
まずは、金額データがString型であるという想定であるので、インプットはString型で、patternは、”¥#,###"とする。
View内で使う場合は、下記のようにText内でfunctionを呼び出して、使う。
Text(formatUserInput(input: stringPrice, pattern: "¥#,###")
また、このfunctionをアプリ内の違うView内でも使いたい場合は、下記のようにClassを作って、その中でfunctionを作る。
その時に、"class func"としないと、functionが呼び出せない。
import Foundation
class CurrencyUtils {
class func formatUserInput(input: String, pattern: String) -> String? {
let formatter = NumberFormatter()
formatter.positiveFormat = pattern
if let number = formatter.number(from: input) {
return formatter.string(from: number)
}
return nil
}
}
classとstructの違いやオブジェクト指向、クロージャーなどを理解することが、Swiftを進めていく上で重要だと思う。これから少しずつ理解していきたい。
この記事が気に入ったらサポートをしてみませんか?