簡體   English   中英

從Objective-C進行Swift數字格式轉換

[英]Swift Number Formatting conversion from Objective-C

我對IOS編程非常陌生,因此希望Swift專家提供一些指導。 我有一個用Objective-C編寫的應用程序,正在轉換為Swift。 它使用自定義鍵盤在文本字段中輸入一個四位數的值。 每次用戶輸入數字時,數字都會除以十。 例如,用戶輸入1並顯示為0.1,用戶輸入12則顯示為1.2,用戶輸入123則顯示為12.3,依此類推。實現此目的的Objective-C代碼為:

-(IBAction)buttonPress1:(UIButton *)sender
{
    if (textviewZFW.text.length <= 4) {
        NSString *digit = sender.currentTitle;
        textviewZFW.text =[textviewZFW.text stringByAppendingString:digit];
        NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];
        [numberFormatter setNumberStyle:NSNumberFormatterDecimalStyle];
        [numberFormatter setGroupingSeparator:@""];
        [numberFormatter setMaximumIntegerDigits:3];
        [numberFormatter setMaximumFractionDigits:1];
        [numberFormatter setMinimumFractionDigits:1];
        textviewZFW.text = [textviewZFW.text stringByReplacingOccurrencesOfString:@"." withString:@""];
        NSDecimalNumber *ZFW = [[NSDecimalNumber decimalNumberWithString:textviewZFW.text] decimalNumberByDividingBy:[NSDecimalNumber decimalNumberWithString:@"10"]];
        textviewZFW.text = [numberFormatter stringFromNumber:ZFW];
    }
}

這樣很好。

我正在研究所有Swift教程和Apple Guide等,但尚未達到相同的結果。 到目前為止,我只能使前幾行沒有小數點:

@IBAction func ButtonPress1(sender: AnyObject) {

    if(ZFW.text.utf16Count <= 3){
        var digit = sender.currentTitle?

        ZFW.text = ZFW.text.stringByAppendingString(digit!)
    }
}

誰能指出我正確的方向來編寫Swift代碼,以反映上述Objective-C。 謝謝

希望現在您能對快速的工作方式有所了解

SWIFT代碼:

    if ((textviewZFW?.text.utf16Count) <= 3) {
        var digit: NSString? = sender.currentTitle
        textviewZFW?.text = textviewZFW?.text.stringByAppendingString(digit!)
        var numberFormatter: NSNumberFormatter = NSNumberFormatter();
        numberFormatter.numberStyle = NSNumberFormatterStyle.DecimalStyle;
        numberFormatter.groupingSeparator = ""
        numberFormatter.maximumIntegerDigits = 3
        numberFormatter.maximumFractionDigits = 1
        numberFormatter.minimumFractionDigits = 1
        textviewZFW?.text = textviewZFW?.text.stringByReplacingOccurrencesOfString(".", withString: "", options: NSStringCompareOptions.CaseInsensitiveSearch, range: nil)
        var zfwDecimal: NSDecimalNumber? = NSDecimalNumber(string: textviewZFW?.text).decimalNumberByDividingBy(NSDecimalNumber(string: "10"))
        textviewZFW?.text = numberFormatter.stringFromNumber(zfwDecimal!)
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM