问题描述
我有以下要求
文本字段应将小数点限制为 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","0.20"]
print(formatted)