du Must also wirklich nachdenken um alle zahlen mit einem Faktor von 100 zu benutzen? Jetzt verstehe ich so langsam warum die heutige Software immer schlechter wird wenn ein Programmierer nich mal dazu in der Lage ist sowas Triviales voll automatisch im Kopf umzusetzen. Schreibt ihr für sowas Unit Tests?
Einfache Mathematik erläutert.
Du hast a / b = c. Die Division sehen wir jetzt einfach mal als Bruch und erweitern ihn mit 100.
a / b = a * 100 / b * 100 = c
Das Ergebnis ist also gleich. Wenn Du a und b beide mit 100 multiplizierst, dann hast Du immer noch das gleiche Ergebnis. Man muss das Ergebnis also nicht durch 100 teilen!
Anders bei a + b = c. Hier können wir dann beide Seiten mit 100 multiplizieren. Dann hast du 100 * (a+b) = 100 c = 100a + 100b = 100c.
Also Du musst sehr gut aufpassen, was du wie machst. Und wie Du schön gezeigt hast: Da können sich mal eben Fehler einschleichen. Da mag man gerne argumentieren, dass ein "Guter" (Programmierer schreibe ich mal nicht .... evtl. Mathematiker? Aber egal was ... jemand, der gut ist auf jeden Fall) das doch auf Anhieb sieht.
==> Ja das ist richtig. Das habe ich ja vielleicht gezeigt. Ich habe Deinen Text gelesen und es sofort gesehen.
Aber dann sind wir wieder beim Thema Clean Code. Was soll das? Ein Guter Entwickler/Programmierer kann auch schlechten Code lesen!
==> Es sollen aber auch weniger gute Entwickler lesen können und jeder, der es liest, soll es in möglichst kurzer Zeit lesen können. Und das auch noch möglichst Fehlerfrei.
Nehmen wir einfach Deinen Fall: Immer wenn ich das Lese, muss ich kurz drüber nachdenken: Ist das richtig? Das kostet Zeit. Egal wie gut ich bin.
==> Klar, das wird gekapselt in eine Library, ich habe Unit Tests u.s.w. Da wird es dann praktkabel. Also es geht nicht um das generelle "mit Integern arbeiten". Das kann in vielen Szenarien Sinn machen ...