Swift: 如何删除最后一个字符
Swift: How to remove last character
我正在做一个带有 eureka 表单(costum 行)的应用程序,问题是当我想用 percentageField 计算 firstValue 时计算不正确,因为当我尝试转换为 double 时无法转换 % in double例如:
第一个值 = 34
百分比字段 = 9%
问题是“9%”无法转换为双精度值,值为 0
percentageField*firstValue = 0 因为无法转换 %
代码:
func eingabessumeBruttoCalc(forPercentage isPercentage: Bool){
let rowEingabessumeBrutto: KalkulationRow = (formViewController()?.form.rowBy(tag:"eingabessumeBrutto"))!
let rowRabatt: KalkulationRow = (formViewController()?.form.rowBy(tag:"rabatt"))!
let rowSkonto: KalkulationRow = (formViewController()?.form.rowBy(tag:"skonto"))!
let rowDiverse: KalkulationRow = (formViewController()?.form.rowBy(tag:"diverse"))!
let rowZielBrutto:KalkulationRow = (formViewController()?.form.rowBy(tag:"zielBrutto"))!
let rowZielNetto:KalkulationRow = (formViewController()?.form.rowBy(tag:"zielNetto"))!
let rowEingabessumeNetto:KalkulationRow = (formViewController()?.form.rowBy(tag:"result"))!
let ValueEingabessumeBrutto = Double(rowEingabessumeBrutto.cell.valueField.text ?? "") ?? 00
let ValueEingabessumeNetto = Double(rowEingabessumeNetto.cell.valueField.text ?? "") ?? 00
let ValueZielBrutto = Double(rowZielBrutto.cell.percentageField.text ?? "") ?? 00
let totalZielBrutto = ValueEingabessumeBrutto * ValueZielBrutto * 0.01
rowZielBrutto.cell.valueField.text = total.description
let ValueRabatt = Double(rowRabatt.cell.percentageField.text ?? "") ?? 00
let totalRabatt = ValueEingabessumeBrutto * ValueRabatt * 0.01
rowRabatt.cell.valueField.text = total.description
let SkontoValue = Double(rowSkonto.cell.percentageField.text ?? "") ?? 00
let rowsSkonto = Double(rowEingabessumeBrutto)-Double(rowRabatt)
let totalSkonto = rowSkonto * SkontoValue * 0.01
rowSkonto.cell.valueField.text = total.description
let ValueDiverse = Double(rowDiverse.cell.percentageField.text ?? "") ?? 00
let totalDierse = ValueEingabessumeBrutto * ValueDiverse * 0.01
rowDiverse.cell.valueField.text = total.description
let ValueZielNetto = Double(rowZielNetto.cell.percentageField.text ?? "") ?? 00
let totalDierse = ValueEingabessumeNetto * ValueZielNetto * 0.01
rowZielNetto.cell.valueField.text = total.description
if let text = percentageField.text,
!text.isEmpty {
percentageField.text?.removeLast()
}
This is what i try.
我想检查最后一个字符是否是 % 删除它。
if let text = textField.text, let lastChar = text.last, lastChar == "%" {
textField.text = String(text.dropLast())
}
我正在做一个带有 eureka 表单(costum 行)的应用程序,问题是当我想用 percentageField 计算 firstValue 时计算不正确,因为当我尝试转换为 double 时无法转换 % in double例如:
第一个值 = 34
百分比字段 = 9%
问题是“9%”无法转换为双精度值,值为 0
percentageField*firstValue = 0 因为无法转换 %
代码:
func eingabessumeBruttoCalc(forPercentage isPercentage: Bool){
let rowEingabessumeBrutto: KalkulationRow = (formViewController()?.form.rowBy(tag:"eingabessumeBrutto"))!
let rowRabatt: KalkulationRow = (formViewController()?.form.rowBy(tag:"rabatt"))!
let rowSkonto: KalkulationRow = (formViewController()?.form.rowBy(tag:"skonto"))!
let rowDiverse: KalkulationRow = (formViewController()?.form.rowBy(tag:"diverse"))!
let rowZielBrutto:KalkulationRow = (formViewController()?.form.rowBy(tag:"zielBrutto"))!
let rowZielNetto:KalkulationRow = (formViewController()?.form.rowBy(tag:"zielNetto"))!
let rowEingabessumeNetto:KalkulationRow = (formViewController()?.form.rowBy(tag:"result"))!
let ValueEingabessumeBrutto = Double(rowEingabessumeBrutto.cell.valueField.text ?? "") ?? 00
let ValueEingabessumeNetto = Double(rowEingabessumeNetto.cell.valueField.text ?? "") ?? 00
let ValueZielBrutto = Double(rowZielBrutto.cell.percentageField.text ?? "") ?? 00
let totalZielBrutto = ValueEingabessumeBrutto * ValueZielBrutto * 0.01
rowZielBrutto.cell.valueField.text = total.description
let ValueRabatt = Double(rowRabatt.cell.percentageField.text ?? "") ?? 00
let totalRabatt = ValueEingabessumeBrutto * ValueRabatt * 0.01
rowRabatt.cell.valueField.text = total.description
let SkontoValue = Double(rowSkonto.cell.percentageField.text ?? "") ?? 00
let rowsSkonto = Double(rowEingabessumeBrutto)-Double(rowRabatt)
let totalSkonto = rowSkonto * SkontoValue * 0.01
rowSkonto.cell.valueField.text = total.description
let ValueDiverse = Double(rowDiverse.cell.percentageField.text ?? "") ?? 00
let totalDierse = ValueEingabessumeBrutto * ValueDiverse * 0.01
rowDiverse.cell.valueField.text = total.description
let ValueZielNetto = Double(rowZielNetto.cell.percentageField.text ?? "") ?? 00
let totalDierse = ValueEingabessumeNetto * ValueZielNetto * 0.01
rowZielNetto.cell.valueField.text = total.description
if let text = percentageField.text, !text.isEmpty { percentageField.text?.removeLast() }
This is what i try.
我想检查最后一个字符是否是 % 删除它。
if let text = textField.text, let lastChar = text.last, lastChar == "%" {
textField.text = String(text.dropLast())
}