1. Liebe Forumsgemeinde,

    aufgrund der Bestimmungen, die sich aus der DSGVO ergeben, müssten umfangreiche Anpassungen am Forum vorgenommen werden, die sich für uns nicht wirtschaftlich abbilden lassen. Daher haben wir uns entschlossen, das Forum in seiner aktuellen Form zu archivieren und online bereit zu stellen, jedoch keine Neuanmeldungen oder neuen Kommentare mehr zuzulassen. So ist sichergestellt, dass das gesammelte Wissen nicht verloren geht, und wir die Seite dennoch DSGVO-konform zur Verfügung stellen können.
    Dies wird in den nächsten Tagen umgesetzt.

    Ich danke allen, die sich in den letzten Jahren für Hilfesuchende und auch für das Forum selbst engagiert haben. Ich bin weiterhin für euch erreichbar unter tti(bei)pcwelt.de.
    Dismiss Notice

Batch BMI-Rechner

Discussion in 'Programmieren' started by Laurids96, Dec 20, 2009.

Thread Status:
Not open for further replies.
  1. Laurids96

    Laurids96 Byte

    Hallo zusammen

    Ich frage mich warum dieser Batchcode nicht funktioniert.
    Rechnet batch etwa nur mit ganzen Zahlen???
    :confused::bahnhof:


    cls
    echo Geben sie ihre GrӇe in cm ein.
    echo:
    set /p groesse=

    cls
    echo Geben sie ihr Gewicht in Kg ein.
    echo:
    set /p gewicht=



    set groesse2=100
    set /a groesse=groesse/groesse2
    set /a groesse3=groesse*groesse
    set /a bmi=gewicht/groesse3

    Bei mir kommt da als BMI immer 50 raus.
     
  2. kazhar

    kazhar Viertel Gigabyte

    das ergebnis von set /a ist immer ganzzahlig, kommastellen werden verworfen (bzw das ergebnis wird abgerundet)

    warum rechnst du eigentlich mit so vielen zwischenergebnissen?
    set /a bmi=(10000*gewicht)/(groesse*groesse)
     
  3. Laurids96

    Laurids96 Byte

    Ich dachte dass es mit Zwischenschritten geht.
    Kann man mit batch auch Kommazahlen errechnen???
     
  4. kazhar

    kazhar Viertel Gigabyte

    set /a kann soweit ich weiß keine ergebnisse mit komma liefern. die rechnung intern funktioniert aber offensichtlich mit kommas.

    je mehr zwischenschritte du machst desto mehr rundungsfehler kommen also dazu.

    edit: wenns ums rechnen geht würde ich eher vbscript verwenden.
     
    Last edited: Dec 20, 2009
  5. Laurids96

    Laurids96 Byte

    Mit deiner Lösung bekomme ich eine wenigstens halbwegs richtige ganze Zahl.
    :danke: für deine Hilfe


    Von vbs hab ich keine Ahnung
     
  6. Urs2

    Urs2 Megabyte

    ...dann probiere doch mal, damit kann man richtig rechnen...

    Kopiere diese paar Zeilen in einen Editor und speichere die Datei als "BMI.VBS" - dann Doppelklick drauf...

    Code:
    groesse = InputBox(vbCr & "  Geben Sie Ihre Grösse in cm an...", _
    				"  Body-Mass-Index berechnen...")
    		'wenn Abbrechen geklickt
    If groesse = False Then WScript.Quit 
    gewicht = InputBox(vbCr & "  Geben Sie Ihr Gewicht in kg an...", _
    				"  Body-Mass-Index berechnen...")
    if gewicht = False Then WScript.Quit
    		'rundet auf 3 Stellen...
    MsgBox "     Ihr BMI ist   " & Round(gewicht / (groesse / 100) ^2, 3) _
    			& "        ", vbOkOnly, "  BodyMassIndex..."
    
    Ist doch ein Bisschen weniger hässlich...
    ...wobei... der BMI auf 3 Stellen genau... schon ohne Kommastellen täuscht er nur Genauigkeit vor.

    Gruss Urs
     
    Last edited: Dec 21, 2009
  7. mike_kilo

    mike_kilo Ganzes Gigabyte

    Last edited: Dec 21, 2009
Thread Status:
Not open for further replies.

Share This Page