TextField用2小数点格式化金额



我有以下需求

Textfield应该将小数点限制为2个值。如果用户输入的数字没有任何";然后文本字段应该将值格式化为如下格式

。输入->导致这个数额

27→0.27

2765→27.65

如果用户输入"。"在文本框中,它的格式应该是这样的

0.27→0.27

27.65→27.65

27.6→27.60

感谢

在这里,我为你做了辛苦的工作。这不是你想要的,但这是一个很好的开始。下次要详细说明你的问题是什么,以及你是如何自己解决的(什么没有成功,什么成功了,等等),而不仅仅是要求解决方案。


let inputs = ["2356", "232", "23.32", "00000.20"]
func removeDotsAndLeadingZeros(_ string: String) -> String {
return string
.replacingOccurrences(of: ".", with: "")
.replacingOccurrences(of: "^0*", with: "", options: .regularExpression)
}
func format(_ number: Double) -> String {
return String(format: "%.2f", number)
}
let noDots = inputs.map(removeDotsAndLeadingZeros)
let doubles = noDots.map { Double($0)! / 100 }
let formatted = doubles.map(format)
// prints ["23.56", "2.32", "23.32", "0.20"]
print(formatted)

最新更新