TextFieldで数値を扱うには、formatに”.number”を指定します。
整数を入力するコード例
TextFieldの引数としているinputIntを宣言する際にInt型で初期化すると、整数を扱うことができます。
後述しますが、inputIntをDouble型で宣言すると実数を扱うことができます。

import SwiftUI
struct TextFieldSample: View {
@State var inputInt: Int = 0
var body: some View {
VStack {
TextField("整数", value: $inputInt, format: .number)
Text("入力値:\(inputInt)")
}
}
}実数を入力するコード例
TextFieldのvalueの値を実数で宣言することで、実数を入力することができます。
ただし、デフォルトでは小数点以下6桁までしか扱えません。

import SwiftUI
struct TextFieldSample: View {
@State var inputDouble: Double = 0.0
var body: some View {
VStack {
TextField("実数", value: $inputDouble, format: .number)
Text("入力値:\(inputDouble)")
}
}
}桁数を指定して実数を扱う
先述したコード例では、小数点以下6桁までしか扱うことができませんでした。
扱う桁数を変更したい時は以下のモディファイアを使用します。
.precision(.significantDigits(x))
整数部も含めた有効桁数を指定することができます。
format部分の引数に以下のように記述します。
.number.precision(.significantDigits(10))
コード例
以下のコード例では、有効桁数を10桁としています。
整数部も含めた有効桁数のため、整数部が”123″などの3桁の値の場合、小数点以下は7桁までしか扱いません。

import SwiftUI
struct TextFieldSample: View {
@State var inputDouble1: Double = 0.0
var body: some View {
VStack {
//.precision(.significantDigits(??))の??部分に指定した値が有効桁数となる
TextField("実数(桁指定)", value: $inputDouble1, format: .number.precision(.significantDigits(10)))
//%.10fで小数点以下10桁まで表示するように指定する
Text("入力値:\(String(format: "%.10f", inputDouble1))")
}
}
}.precision(.fractionLength(x))
小数点以下の有効桁数を指定することができます。
format部分の引数に以下のように記述します。
.number.precision(.fractionLength(10))
コード例
小数点の桁数を指定しています。
significantDigitsと異なり、整数部の桁数は関係なく、整数部に”123″が入力されていても小数点以下の値に10桁まで入力することができます。

import SwiftUI
struct TextFieldSample: View {
@State var inputDouble2: Double = 0.0
var body: some View {
VStack {
//.precision(.fractionLength(??))の??部分に指定した値が小数点以下の桁数となる
TextField("実数(桁指定)", value: $inputDouble2, format: .number.precision(.fractionLength(10)))
//%.10fで小数点以下10桁まで表示するように指定する
Text("入力値:\(String(format: "%.10f", inputDouble2))")
}
}
}

