Type Umwandlung



  • hallo,

    die Methode length() der Object File liefert long zurück

    es heisst wenn ein Datei die, die Länge 512 hat

    wird in der Umwandlung in der KB 512 / 1024 = 0.5;

    aber bei der Division ich bekomme immer 0

    wie kann ich di 0.5 ermitteln ???



  • Du weisst wohl das Ergebnis deiner Division einem Ganzzahlentyp zu. Da ist es natürlich nicht verwunderlich, dass du 0 statt 0.5 erhälst. Versuchs mit float oder double.



  • Die Zuweisung ist gar nicht noetig, wenn ein Integer durch einen anderen geteilt wird, ist das Ergebnis IMMER ein Integer.

    Loesung: Mind. einen von beiden Operanden in einen Gleitkommatyp verwandeln, also z.B.

    (float) 512 / 1024
    512 / 1024.0

    PS: Ein Kilobyte hat 1000 Bytes, Du meinst Kibibyte (abgekurzt kiB)



  • SG1 schrieb:

    PS: Ein Kilobyte hat 1000 Bytes, Du meinst Kibibyte (abgekurzt kiB)

    Seid wann ist das denn so??? Ich dachte auch immer 1 KB == 1024 Byte.

    Könnte das der Grund sein, dass meine Festplatte ständig voll ist 😃 Da fehlen ja quasi 24 Bytes pro KByte und das wiederum heisst es fehlen 24 KBytes in jedem Mbyte usw. usw - bei ner grossen Platte heisst das riesen Platzverlust oder 😕 😮 😉



  • 1 KByte == 1000 Bytes 😮

    na den prost - erinnert mich an etwas das ich auf der hauptseite gelesen habe

    Was ist der Unterschied zwischen einem Physiker und einem Programmierer?

    Der Physiker glaubt, 1KByte wären 1000 Bytes.

    Ein Programmierer glaubt, 1km wären 1024m...



  • PS: Ein Kilobyte hat 1000 Bytes

    Bist du dir da sicher?

    Ein Kilobyte hat auf alle Fälle 1024 Byte. Ein Megabyte hat 1024 Kilobyte...
    Um das zu bestätigen öffne doch einfach mal den Explorer (wenn du unter Windows arbeitest) und schau dir die Eigenschaften einer beliebigen größeren Datei an:

    120 KB (122.880 Bytes)
    oder
    739.782.656 Bytes - 705 MB
    

    Wenn man nun immer durch 1000 dividieren würde, dann würde da wohl beidemale was anderes rauskommen 😉



  • ja, 1024

    @cengiz

    0.5 wird AUF gerundet auf 1

    bye donay



  • Mal was zum lesen.

    http://www.tecchannel.de/hardware/848/index.html

    Vor kurzem war ja auch was zu lesen das einer in den USA einen Festplattenhersteller verklagt hat wegen falscher Grössenangabe.
    Und fakt ist, das die Festplattenhersteller es schon immer richtig bezeichnet haben.

    Nur die anderen ignorieren fröhlich den Standard.


Anmelden zum Antworten