亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何使用SWIFT在文本字段(從右到左)輸入貨幣格式?

如何使用SWIFT在文本字段(從右到左)輸入貨幣格式?

精慕HU 2019-07-02 11:06:39
如何使用SWIFT在文本字段(從右到左)輸入貨幣格式?我有個號碼,比方說0.00.當用戶點擊1.我們應該有0.01當用戶點擊2。我們應該顯示0.12當用戶點擊3。我們應該顯示1.23當用戶點擊4。我們應該顯示12.34我怎么才能用斯威夫特做這件事?
查看完整描述

3 回答

?
一只斗牛犬

TA貢獻1784條經驗 獲得超2個贊

SWIFT 3..在文本字段上輸入貨幣格式(從右到左)

override func viewDidLoad() {
    super.viewDidLoad()

    textField.addTarget(self, action: #selector(myTextFieldDidChange), for: .editingChanged)}
    func myTextFieldDidChange(_ textField: UITextField) {

    if let amountString = textField.text?.currencyInputFormatting() {
        textField.text = amountString    }}extension String {

    // formatting text for currency textField    func currencyInputFormatting() -> String {

        var number: NSNumber!
        let formatter = NumberFormatter()
        formatter.numberStyle = .currencyAccounting
        formatter.currencySymbol = "$"
        formatter.maximumFractionDigits = 2
        formatter.minimumFractionDigits = 2

        var amountWithPrefix = self

        // remove from String: "$", ".", ","        let regex = try! NSRegularExpression(pattern:
         "[^0-9]", options: .caseInsensitive)
        amountWithPrefix = regex.stringByReplacingMatches(in: amountWithPrefix, options:
         NSRegularExpression.MatchingOptions(rawValue: 0), range: NSMakeRange(0, self.characters.count), withTemplate: "")

        let double = (amountWithPrefix as NSString).doubleValue
        number = NSNumber(value: (double / 100))

        // if first number is 0 or all numbers were deleted        guard number != 0 as NSNumber else {
            return ""
        }

        return formatter.string(from: number)!
    }}


查看完整回答
反對 回復 2019-07-02
?
桃花長相依

TA貢獻1860條經驗 獲得超8個贊

試試這段代碼:

struct DotNum {
  private var fraction:String = ""
  private var intval:String = ""
  init() {}
  mutating func enter(s:String) {
    if count(fraction) < 2 {
      fraction = s + fraction    } else {
      intval = s + intval    }
  }
  private var sFract:String {
    if count(fraction) == 0 { return "00" }
    if count(fraction) == 1 { return "0\(fraction)" }
    return fraction  }
  var stringVal:String {
    if intval == ""  { return "0.\(sFract)" }
    return "\(intval).\(sFract)"
  }}var val = DotNum()val.enter("1")val.stringVal
val.enter("2")val.stringVal
val.enter("3")val.stringVal
val.enter("4")val.stringVal


查看完整回答
反對 回復 2019-07-02
  • 3 回答
  • 0 關注
  • 797 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號