2016-11-13 5 views
1

Sagen Sie eine Nummer haben ...Arbeiten mit Ziffern in Zahlen in Swift 3

var number = 643 

und Sie wollen es etwas Mathematik zu tun.

Zum Beispiel möchten Sie die letzten zwei Ziffern (43) nehmen und sehen, ob eine Ganzzahl für die letzten beiden Ziffern minus der letzten Ziffer keinen Rest übrig lässt.

Zum Beispiel:

var remainder = 40 % 5 //'5' is the random integer, and 40 is the last two digits(43) minus the last digit(3) 

Dies wäre eher trivial in Vbscript aber irgendwie ein Neuling in Swift 3 sein kann ich das nicht auf dem Spielplatz getan.

Wenn ich

var number = 643 
var str = (String)number 
let lastChar = str.characters.last 
var digit = 0 
digit = Int(lastChar) 

Die letzte Zeile eine Warnung ausgibt Kann nicht Initialisierer für Typ 'Int' mit einem Argument Liste vom Typ '(String.CharacterView._Element?)' Aufrufen

enter image description here

Könnte mir bitte jemand helfen? mit Google in mehr als 30 Minuten war ich nicht in der Lage, die Antwort zu finden und in der Regel in kürzerer Zeit, ich bin gut ...

Ihnen herzlich danke

+0

lastChar versucht etwas zu var str zu tun. Aber var str ist eine Zeichenkette, kein int. –

+2

'(String) Nummer' kompiliert nicht. Warum nicht '643% 100', um' 43' zu bekommen? – vadian

+0

@vadian Warum nicht wirklich! Was für eine elegante Lösung. Jetzt muss ich herausfinden, wie man die Anzahl der Ziffern in einer Zahl bekommt und ich sollte gut sein. – SuperWoman

Antwort

0

Ich denke, das einfacher ist, mit nur Integer-Manipulation zu tun :

let number = 643 

let last2Digits = number % 100 // 43 
let lastDigit = number % 10 // 3 

let result = last2Digits - lastDigit //40