如何解决TextField 用 2 个小数点格式化金额
我有以下要求
文本字段应将小数点限制为 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)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。