2013-03-28 7 views
9

Was will ich im Wesentlichen tun, ist jede Anzahl eine Benutzereingabe hat, und um es auf die nächste nächste ganze Zahl teilbar durch X, ohne 1.Weiter Nächster teilbare Zahl von X

IE (X = 300):

Input = 1 Ausgang = 300

Input = 500 Output = 600

Input = 841 Output = 900

Input = Output = 305 300

+9

Ihr letztes Beispiel widerspricht Ihrer angegebenen Anforderung. –

+2

Sollte nicht 305 zu 600 führen? Deine Frage sagt "nächstgrößere Nummer". –

Antwort

14

Just (integer) dividieren durch X, fügen Sie ein, dann multiplizieren mit X.

int output = ((input/x) + 1) * x; 
+0

Ups, repariere es. – Blorgbeard

+2

Jetzt funktioniert es nicht für z.B. 300 – BrokenGlass

+0

Funktioniert gut, danke! – Laveer

2

Basierend auf Ihrem Beispiel Verhalten Ich würde so etwas tun:

 
double GetNearestWholeMultiple(double input, double X) 
    { 
     var output = Math.Round(input/X); 
     if (output == 0 && input > 0) output += 1; 
     output *= X; 

     return output; 
    } 
Verwandte Themen