erwartete Ich habe folgende in einem Programm (Teil einer viel größeren Funktion, aber dies ist der relevante Test Bit):C mathematische Berechnung arbeitet nicht als
int test = 100 + (100 * (9/100));
sprintf (buf, "Test: %d\n\r", test);
display_to_pc (buf, player);
Grundsätzlich sie beträgt:
x = a + (a * (b/100))
Wo a ist eine gegebene Zahl, b ist ein Prozentsatz Modifikator, und x ist das Ergebnis (das Original plus ein Prozentsatz des Originals) ... Ich hoffe, dass es Sinn macht.
Es gibt mir:
Test: 100
Ich dachte, die Mathematik in meinem Kopf falsch sein könnte, aber ich habe mehrere Rechner und sogar die Ausdrucksauswertung in meinen IDE überprüft, und sie alle geben mir das erwartete Ergebnis von 109 für den ersten Ausdruck.
Kann mir jemand aufklären, was ich hier vermisse?
Vielen Dank. :)
Verwenden Sie Arithmetik innerhalb nur ganze Zahlen und Sie sollten sehen, wie dies zu diesem Ergebnis, z. Denken Sie darüber nach, wie oft 100 in 9 als ganze Zahlen, nicht als Brüche, eingehen. –