Prozentberechnung langer Zahlen



  • Servus,

    ich haben ein Problem:
    Ich muss von zwischen zwei relativ grossen Zahlen den Prozentsatz berechnen.
    D.h.

    2 Variablen a,b vom Typ Long
    1 Variable erg vom Typ double

    Mathematische Formel lautet:
    erg=(b/a)*100
    Dann ist beanntlich erg der Prozentsatz von b in Bezug auf a.

    Ich habe in der Einleitung geschrieben, dass es ich um relativ grosse Zahlen handelt. Damit meine ich Zahlen im Bereich bis ca. 1.000.000.000.000!

    Ich habe das ganze so versucht:

    Dann wird als Ergebnis 115.983 % ausgegeben. Das stimmt nicht ganz!

    Wie kann ich dieses Problem lösen?

    Vielen Dank für Eure Hilfe!

    Karl Blau



  • Sorry, den Quellcode hats unterschlagen:

    long b=10000000000;
    long a=100000000000;
    double prozent=(double)b/a*100;
    cout << (double)prozent << " %" << endl << endl;



  • ich würd mich wundern wenn long so grosse zahlen aufnehmen kann... gib mal testweise die werte von a und b aus 🙂



  • Gute Idee,
    hab ich schon nachgeprüft, die Longs werden automatich in 64Bit-Variablen umgewandelt, da passen die dann rein.
    Das funktioniert soweit auch.

    Gruss,

    Karl B.



  • long long solltest du für 64Bit Integer Typen nutzen, dann geht das auch

    #include <stdio.h>
    
    int main(void)
    {
      long long a=10000000000;
      long long b=100000000000;
      double p=((double)a/b)*100;
      printf("%g\n",p);
      return 0;
    }
    


  • Vielen Dank für Eure Hilfe!

    Ich habs jetzt hinbekommen.

    Tschö


Anmelden zum Antworten