der ausdruck muss ein ganzzahliger...



  • Meinst du std::pow(a, b) anstatt den xor-Operator ?


  • Mod

    ^ ist keine Potenz, sondern ein bitweises XOR. pow (aus cmath) ist eine Potenz.

    double ist übrigens ein ziemlich ungeeigneter Datentyp (sogar der wohl ungeeignetste von den Basisdatentypen), um damit Geldbeträge zu verarbeiten. Um nicht zu viel Aufwand zu haben, solltest du vielleicht erst einmal mit Ganzzahlen rechnen und den Geldbetrag dabei als Cent zählen (oder besser Zehntel oder Hundertstel Cent).

    edit: Woot? 3 Minuten zu später als die erste Antwort? Irgendwie muss dieser Tab wohl hinten in der Leseliste gelandet sein.



  • SeppJ schrieb:

    double ist übrigens ein ziemlich ungeeigneter Datentyp (sogar der wohl ungeeignetste von den Basisdatentypen), um damit Geldbeträge zu verarbeiten.

    float ist noch ungünstiger.



  • woot schrieb:

    SeppJ schrieb:

    double ist übrigens ein ziemlich ungeeigneter Datentyp (sogar der wohl ungeeignetste von den Basisdatentypen), um damit Geldbeträge zu verarbeiten.

    float ist noch ungünstiger.

    Wieso ist float noch ungünstiger als double?



  • bool ist noch ungünstiger!



  • out schrieb:

    woot schrieb:

    SeppJ schrieb:

    double ist übrigens ein ziemlich ungeeigneter Datentyp (sogar der wohl ungeeignetste von den Basisdatentypen), um damit Geldbeträge zu verarbeiten.

    float ist noch ungünstiger.

    Wieso ist float noch ungünstiger als double?

    Auf den meisten CPUs, wie x86, sind floating point Berechnungen mit double implementiert, floats werden also emuliert und die Konvertierungen kosten Zeit. Damit ist double nicht nur genauer, sondern auch schneller (getestet an einer Image convolution, der Unterschied betrug ~15%). Nur im Falle von speicherintensiven Aufgaben empfiehlt sich float mehr.
    Aber wie gesagt: dies ist hardwarebedingt.

    Kenner der Fakten schrieb:

    bool ist noch ungünstiger!

    bool ist ein Wahrheitswert, der eigentlich nur 2 Zustände kennt: wahr/true oder falsch/false. Dafür sollte nur 1 Bit benötigt werden, jedoch wird 1 Byte (=7 verschwendete Bits) reserviert. Abgesehen davon ist es natürlich Schwachsinn für Geldberechnung :p



  • double ist übrigens ein ziemlich ungeeigneter Datentyp (sogar der wohl ungeeignetste von den Basisdatentypen), um damit Geldbeträge zu verarbeiten.

    Erinnerst du dich an diese Geld-Lib die ich machen wollte?
    https://github.com/bingojamigo/Money-Lib/tree/master/Money Lib



  • Youka schrieb:

    out schrieb:

    woot schrieb:

    SeppJ schrieb:

    double ist übrigens ein ziemlich ungeeigneter Datentyp (sogar der wohl ungeeignetste von den Basisdatentypen), um damit Geldbeträge zu verarbeiten.

    float ist noch ungünstiger.

    Wieso ist float noch ungünstiger als double?

    Auf den meisten CPUs, wie x86, sind floating point Berechnungen mit double implementiert, floats werden also emuliert und die Konvertierungen kosten Zeit. Damit ist double nicht nur genauer, sondern auch schneller (getestet an einer Image convolution, der Unterschied betrug ~15%). Nur im Falle von speicherintensiven Aufgaben empfiehlt sich float mehr.
    Aber wie gesagt: dies ist hardwarebedingt.

    Ich glaube eigentlich, er meinte, dass float einfach ungenauer ist.


  • Mod

    Sone schrieb:

    Erinnerst du dich an diese Geld-Lib die ich machen wollte?
    https://github.com/bingojamigo/Money-Lib/tree/master/Money Lib

    Ja. Und du benutzt ja auch integrale Datentypen. Aber ich denke, vatan89 wäre damit etwas überfordert.



  • Danke leute dieses pow(x,y) hat mir schon sehr geholfen. Wie lange muss ich mich eigentlich mit Programmieren auseinandersetzten um eure Unterhaltungen zu verstehen^^. Ich hab das Gefühl trotz intensiver Lerneinheiten stagniert mein Lernprozess irgendwie 🙂 Naja aufjedenfall danke dieses Forum ist echt spitze 🙂



  • Wie lange muss ich mich eigentlich mit Programmieren auseinandersetzten um eure Unterhaltungen zu verstehen^^

    Kommt doch völlig drauf an über was wir uns unterhalten, oder?

    Ich hab das Gefühl trotz intensiver Lerneinheiten stagniert mein Lernprozess irgendwie 🙂

    Aha? Wieso das? Es dauert eben sehr lange, C++ zu beherrschen.

    3 Minuten zu später

    Und der Preis für den witzigsten grammatikalischen Fehler geht an SeppJ! Herzlichen Glückwunsch!
    http://ruthe.de/cartoons/strip_1605.jpg
    (Ob du allerdings schon einen Doktortitel hast, weiß ich nicht)


Anmelden zum Antworten