Teilbarkeit durch 100 in c#?

4 Antworten

Vom Beitragsersteller als hilfreich ausgezeichnet

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. :)


Gastnr007  21.12.2017, 07:27

"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

0
TeeTier  21.12.2017, 08:13
@Gastnr007

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! ;)

0

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


Schachpapa  23.09.2016, 20:58

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?

0
Isendrak  24.09.2016, 19:12
@Gastnr007

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);
0
Palladin007  21.12.2017, 02:27
@Schachpapa

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.

0
Gastnr007  21.12.2017, 07:30
@Schachpapa

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)

0
Gastnr007  21.12.2017, 07:34
@Gastnr007

Ah ok, weil Palladin007 auf einen zwei Jahre alten Kommentar geantwortet hat…

0

Einfach x%100 rechnen. Das Ergebnis davon ist dein gesuchtes.


TeeTier  23.09.2016, 21:09

Wieso modulo? Einfach dividieren! Es ist ja nicht der Rest, an dem Interesse besteht: x / 100

2