提问人:Nus 提问时间:11/2/2023 更新时间:11/2/2023 访问量:43
Swift 二进制运算符不能应用于格式化函数
Swift binary operator can not be applied into formatted function
问:
我正在尝试使用格式化函数将 to 值的总和转换为带有硬编码字符串的货币。但我有以下错误。
二进制运算符“+”不能应用于“Double”和“String”类型的操作数
我尝试过传递货币信号值的格式化函数并且工作正常,但是当我尝试使用 + 运算符添加两个值时,我得到了上面的错误。
这是产生错误的行..
if isOn2 {
Text("\(order.productTotal + fee.formatted(.currency(code: "GBP")))")
.bold()
}
Here is the code ..
struct OrderView: View {
@State private var isOn1 = false
@State private var isOn2 = false
var body: some View {
HStack {
Text("Grand total is :")
.bold()
Spacer()
if isOn2 {
Text("\(order.productTotal + fee.formatted(.currency(code: "GBP")))")
.bold()
} else {
Text("\(order.productTotal.formatted(.currency(code: "GBP")))")
.bold()
}
}
.padding(5)
}
这是屏幕截图..
答:
1赞
DonMag
11/2/2023
#1
您需要转换为字符串,使用 并将结果转换为字符串。order.productTotal
\()
fee.formatted(.currency(code: "GBP"))
改变:
Text("\(order.productTotal + fee.formatted(.currency(code: "GBP")))")
自:
Text("\(order.productTotal) \(fee.formatted(.currency(code: "GBP")))")
评论
0赞
Nus
11/2/2023
抱歉,使用 + 运算符的目的是添加 order.productTotal + fee,但更改后没有添加 total order.productTotal + fee
1赞
DonMag
11/3/2023
@Nus——啊......请看邓肯的回答。另外,花点时间复习一下如何提问,以便清楚您首先要问什么:)
2赞
Duncan C
11/2/2023
#2
如果要将 order.productTotal 添加到 fee 并将总和显示为格式化字符串,请使用
Text("\((order.productTotal + fee).formatted(.currency(code: "GBP")))")
.bold()
(将这两个值相加,然后将总和的格式设置为货币。
评论
Text("\(order.productTotal)" + fee.formatted(.currency(code: "GBP"))) .bold()