Teilbarkeit durch 100 in c#?
hallo ich möchte ein prog. in visual c# schreiben und muss hierfür testen ob die zahl durch 100 teilbar ist. ausgegeben werden soll z.B. bei 105 1; 100 1;345 3; 299 2 usw. kann mir jmd. helfen mit mod hat leider nicht so funktioniert wie es sollte. vielen dank im vorraus
4 Antworten
Du machst einen kleinen Denkfehler. Mit Modulo hat das doch gar nichts zu tun. Rechne einfach x / 100. Dabei werden alle Zehner und einer Stellen abgeschnitten, und du erhältst die Hunderter. :)
Das ist wirklich ganz toll für dich, interessiert aber niemanden und - ich wiederhole mich - hat mit der Fragestellung nichts zu tun!
Vor dem Meckern bitte nächstes mal die Fragestellung lesen UND verstehen.
Vielen Dank im Voraus! ;)
So wie du es beschreibst, willst du nicht die Teilbarkeit feststellen, sondern das ganzahlige Hundertstel bestimmen:
Floor (x/100)
Wieso funktioniert mod nicht? if(!(x % 100)) Vielfaches
Darf man das so schreiben? Ich hätte jetzt
if (x%100 == 0) // Vielfaches
erwartet. Oder ist in C# (wie in C) alles true was ungleich 0 ist?
In C/C++ schon, aber (leider) nicht in C#...
bool b = 1;
Gibt folgendes:
error CS0031: Constant value `1' cannot be converted to a `bool'
Solange es allerdings um Zahlenwerte geht, kann man das hier verwenden:
bool b = System.Convert.ToBoolean(3.14);
Nein, Du hast recht. Unter C# gibt Modulo den Rest der Rechnung zurück, in diesem Fall also ein int.
Und das ist auch gut so und mit Absicht so gewählt :P Das zwingt zu einer gewissen Disziplin, was langfristig zu besser lesbaren Code führt. Außerdem muss man an weniger Hintergrund-"Magie" wie automatische Konvertierung denken.
Das Snippet oben würde so z.B. in PHP funktionieren.
In C# musst du nach == 0 bzw != 0 testen. Das geht dort leider nicht wie in C (zumindest bei dem Compiler, den ich getestet habe).
(hehe bin mit dem neuen gf.net noch nicht vertraut;... wieso wurde mir eine ewig alte Frage angezeigt? Und die Kommentare habe ich übersehen; nunja: verzeihts mir :D)
Ah ok, weil Palladin007 auf einen zwei Jahre alten Kommentar geantwortet hat…
Einfach x%100 rechnen. Das Ergebnis davon ist dein gesuchtes.
Wieso modulo? Einfach dividieren! Es ist ja nicht der Rest, an dem Interesse besteht: x / 100
"Mit Modulo hat das doch gar nichts zu tun. "
Dein Expertentitel sollte dir aberkannt werden!
Wenn eine Zahl A durch eine Zahl B teilbar ist, dann ist A mod B gleich 0