- 12V Akku mit 280 Ah bauen         
Ergebnis 1 bis 5 von 5

Thema: Byte-Variable Berechnung fehlerhaft

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    29.07.2011
    Beiträge
    348

    Byte-Variable Berechnung fehlerhaft

    Hi zusammen,
    Frohe Weihnachten erst mal an alle!

    Ich habe heute mal ein wenig Zeit und grübele gerade an einem Problem.

    Ich habe eine Single-Variable die ich auf 2 Stellen vor und nach dem Komma aufteilen möchte.
    Das habe ich so versucht:

    Code:
    Dim Te As Single
    Dim Rechenwert1 As Single
    Dim Rechenwert2 As Word
    Dim Vorkomma As Byte
    Dim Nachkomma As Byte
    
    Rechenwert1 = Te * 100                ' Komma um zwei Stellen nach rechts verschieben
    Rechenwert1 = Round(rechenwert1)   ' letzte Stelle runden
    Rechenwert2 = Rechenwert1          ' Single-Variable in Word-Variable wandeln
    Vorkomma = Rechenwert2 / 100       
    Nachkomma = Rechenwert2 Mod 100
    Bis zu Rechenwert2 stimmen meine Ergebnisse. Nur danach, der Wert Vorkomma und der Wert Nachkomma, sind totaler Blödsinn.

    Ich hätte gerne das die beiden Werte jeweils in einer Byte-variable stehen. Wo ist denn mein Denkfehler?

    Viele Grüße
    Geändert von demmy (24.12.2014 um 14:08 Uhr)

  2. #2
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    16.02.2006
    Beiträge
    1.113
    Hallo demmy,
    zwei Sachen: Einmal nimmst du zur Berechnung von Vorkomma die Variable Temperatur_rechenwert2, die vorher noch nicht gesetzt wurde.
    Ist aber wahrscheinlich nur ein Übertragungsfehler und du meinst Rechenwert2.
    Wichtiger ist aber, dass Vorkomma nur als Byte definiert ist. Bascom verwendet immer die Rechenmethode, die zur Ergebnisvariable gehört. Bedeutet, dass Bascom in diesem Fall mit Bytes rechnet. Rechenwert2 ist aber vom Typ Word.
    Du kannst nur einen Typ in einen anderen umwandeln, wenn du ihn einfach zuweist, wie hier
    Rechenwert2 = Rechenwert1
    Beide haben unterschiedlichen Typ, aber die Zuweisung funktioniert. Ähnlich musst du das auch mit Rechenwert2 machen.
    Geändert von for_ro (24.12.2014 um 13:44 Uhr)

  3. #3
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    29.07.2011
    Beiträge
    348
    Hu Hu,

    ja das war ein kleiner Kopierfehler.
    Und vielen Dank, habe es jetzt so gemacht und jetzt funktioniert es!

    Code:
    Dim Te As Single
    Dim Rechenwert1 As Single
    Dim Rechenwert2 As Word
    Dim Vorkomma_word as Word
    dim Nachkomma_word as word
    Dim Vorkomma As Byte
    Dim Nachkomma As Byte
    
    Rechenwert1 = Te * 100                ' Komma um zwei Stellen nach rechts verschieben
    Rechenwert1 = Round(rechenwert1)   ' letzte Stelle runden
    Rechenwert2 = Rechenwert1          ' Single-Variable in Word-Variable wandeln
    Vorkomma_word = Rechenwert2 / 100       
    Nachkomma_word = Rechenwert2 Mod 100
    Vorkomma = Vorkomma_word
    Nachkomma = Nachkomma_word
    Aber geht das ganze nicht irgendwie ein wenig einfacher? Das scheint mir doch alles ein wenig viel zu sein für so eine "einfache" Rechenoperation.

  4. #4
    Neuer Benutzer
    Registriert seit
    16.02.2011
    Ort
    Hannover
    Beiträge
    4
    Zitat Zitat von demmy Beitrag anzeigen
    Aber geht das ganze nicht irgendwie ein wenig einfacher?

    Hallo!

    Schau dir doch bei Bascom einfach mal die Befehle FRAC und INT an!


    Angeneme Weihnachten noch,
    Sky30
    Niemals Nie sagen.... es sei denn, es ist endgültig!

  5. #5
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    07.03.2011
    Beiträge
    1.899
    Ohne jetzt Bascom wirklich zu kennen:

    Vorkomma = Te
    Nachkomma = Te * 100 Mod 100

    wenn Vorkomma und Nachkomma Ganzzahlvariablen sind.

    MfG Klebwax
    Strom fließt auch durch krumme Drähte !

Ähnliche Themen

  1. Berechnung mit long-Variable fehlerhaft
    Von Suggarman im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 9
    Letzter Beitrag: 30.03.2009, 20:13
  2. Byte Variable als Word umwandeln
    Von rici35 im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 5
    Letzter Beitrag: 07.07.2008, 05:29
  3. Wie Word Variable zu Byte konvertieren
    Von nase im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 11
    Letzter Beitrag: 30.06.2008, 20:48
  4. Byte Variable - out of SRAM space
    Von Barthimaeus im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 5
    Letzter Beitrag: 19.11.2007, 14:17
  5. Vergleich Single - Byte-Variable
    Von dl1akp im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 3
    Letzter Beitrag: 11.01.2005, 08:54

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

LiFePO4 Speicher Test