Zwei Integer zu Floatingpoint-Value wie???



  • Hi, Leute ich brauche eine Funktion
    mit der eine Fließkommanzahl aus zwei Integern zusammengesetzt wird.

    Ein Integer als Vorkommwert und der andere Integer als Nachkomma-Wert

    Bespiel: 345 und 76 zu 345.76.

    Also so etwas: 345.76==createValue(345 , 76)

    Wer weiß Rat?



  • float nachkommateil = 76;
    
    while(nachkommateil > 1)
      nachkommateil /= 10;
    
    float zahl = 345 + nachkommateil;
    


  • Oder die elegante (oder sollte ich sagen "trickreiche"?) Version:

    stringstream converter;double zahl;
    converter<<vorkomma<<'.'<<nachkomma;
    converter>>zahl;
    


  • Fließkommanzahl schrieb:

    Bespiel: 345 und 76 zu 345.76.

    Also so etwas: 345.76==createValue(345 , 76)

    was machst Du eigentlich, wenn man die Zahl 321.007 darstellen soll. Wie ist der Unterschied zu 321.7 ?



  • Fließkommanzahl schrieb:

    Hi, Leute ich brauche eine Funktion
    mit der eine Fließkommanzahl aus zwei Integern zusammengesetzt wird.

    Ein Integer als Vorkommwert und der andere Integer als Nachkomma-Wert

    Bespiel: 345 und 76 zu 345.76.

    Also so etwas: 345.76==createValue(345 , 76)

    Wer weiß Rat?

    int a = 345;
    int b = 76;
    int scale = 100; // Skalierung von b
    
    double d = double(a) + double(b) / double(c);
    

    Ohne "c" ergibt sich logischerweise das von Werner angesprochene Problem.
    Die "skalierung" kann dabei fix sein oder auch nicht -- kommt darauf an was du brauchst.
    u.U. kann es auch Sinn machen gleich 34576 als integer zu speichern.


Anmelden zum Antworten