2014-11-27 28 views
5

Ho bisogno di verificare se un intero è divisibile per un altro intero esattamente.Il check in di un intero è divisibile per un altro intero (Swift)

In caso contrario, desidero arrotondarlo al multiplo più vicino del numero.

Esempio:

var numberOne = 3 
var numberTwo = 5 

numberTwo non è un multiplo di numberOne quindi vorrei che per arrotondare numberTwo fino a 6.

Come faccio a fare questo? Grazie

risposta

8

È possibile utilizzare l'operatore modulo %:

numberTwo % numberOne == 0 

Il modulo rileva il resto di una divisione intera tra 2 numeri, così per esempio:

20/3 = 6 
20 % 3 = 20 - 6 * 3 = 2 

Il risultato di 20/3 è 6,666667 - il dividendo (20) meno la parte intera di quella divisione moltiplicata per il divisore (3 * 6) è il modulo (20 - 6 * 3), uguale a 2 in questo caso.

Se il modulo è pari a zero, quindi il dividendo è un multiplo del divisore

Altre informazioni sul modulo a this pagina di wikipedia.

+0

La prima parte sta funzionando per me, ma non sono sicuro di cosa significhi la linea di fondo. Come faccio a capire cosa aggiungere al 20 per renderlo divisibile per 3? Mi piacerebbe completarlo. Grazie –

+0

Aggiornato la risposta - la speranza che spiega un po '. – Antonio

1

È possibile utilizzare truncatingRemainder. Ad es.,

if number.truncatingRemainder(dividingBy: 10) == 0 {     
    print("number is divisible by 10") 
}