Single aus Bereich?

  • Zitat von Frabbing;843652

    Hast du schon mal so ähnlich probiert?


    f! = Long(rect#,16)


    Das geht nicht, da kommt kein Single.

    Code
    'Var Double a = 1.45
    Var Single a = 1.45
    Var Long b = Addr(a)
    Var f! = Float(b, 0)
    print f!
    WaitKey


    Mit Double gehts, mit Single nicht, weil es kein Single(b, 0) gibt!

  • Ach so. Schau mal, so geht's:


    Code
    'Var Double a = 1.45
    Var Single a = 1.45
    Var Long b = Addr(a)
    Var f! = Double(Long(b, 0))
    print f!
    WaitKey


    :)

    Gruß, Frank

  • Ich brauche es zwar wieder in einem Single, aber das scheint auch zu gehen.
    Allerdings die Logik Double zu verwenden um Single aus SingleAdresse zu
    bekommen 8O


    Danke Dir :)


    (Warum um Gottes Willen nutzt XProfan überall Double? Sind für Grafik,
    Sound usw. nicht erforderlich, fressen nur Platz und Geschwindigkeit).

  • f! ist eben 8 Byte groß und somit musst du Double nehmen, um aus den 4 Byte im Speicher die 8 Byte zu machen. Wenn du für f! gleich eine Single-Float-Variable nimmst (also a), könntest du das sicher sparen. Dachte, du brauchst das als gängiges Float f!. ;)

    Gruß, Frank

  • Zitat von Frabbing;843797

    Dachte, du brauchst das als gängiges Float f!. ;)

    Dachte eigentlich Float = Single, wie in anderen Sprachen, das
    wäre dann auch gängig :D.
    Wozu sollte ich Double brauchen, es geht um Sound, nicht um
    finanzmathematischen Kram ;). Double braucht man doch nun wirklich sehr selten.

  • Hallo,
    das mit der Variablenbezeichnung ist halt historisch gewachsen:
    Als mit Profan² 2.0 die Fließkommavariablen eingeführt wurden, waren es tatsächlich 4-Byte-Single. "Float" sagt eigentlich nur, dass es Fließkommawerte sind. Schon bald (Version 2.5?) wurden sie auf 8-Byte-Double aufgewertet.


    Gruß
    Roland

    (Intel Duo E8400 3,0 GHz / 4 GB RAM / 250 GB HDD / ATI Radeon HD4770 512 MB / Windows Vista - ausgemustert zum Verkauf)
    AMD Athlon II X2 2,9 GHz / 8 GB RAM / 500 + 1000 GB HDD / ATI Radeon 3000 (onboard) / Windows 10(64) - XProfan X4


    http://www.xprofan.de

  • "Dummerweise" ist der Funktionsname Single() aber schon anderweitig vergeben, nämlich um das Bitmuster einer Single-Fließkommazahl in einem Integer abzulegen. (Siehe XProfan-Hilfe.) Und Double() ist halt die Umkehrfunktion dazu.


    Gruß
    Roland

    (Intel Duo E8400 3,0 GHz / 4 GB RAM / 250 GB HDD / ATI Radeon HD4770 512 MB / Windows Vista - ausgemustert zum Verkauf)
    AMD Athlon II X2 2,9 GHz / 8 GB RAM / 500 + 1000 GB HDD / ATI Radeon 3000 (onboard) / Windows 10(64) - XProfan X4


    http://www.xprofan.de

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!