- LiFePO4 Speicher Test         
Ergebnis 1 bis 4 von 4

Thema: Anzahl Nachkommastellen eines "Single"

  1. #1
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    11.09.2007
    Beiträge
    211

    Anzahl Nachkommastellen eines "Single"

    Anzeige

    Praxistest und DIY Projekte
    Hallo,

    ich definiere eine Variable:

    Code:
    Dim Summe As Single
    diese wird mit einem Wert belegt und soll später auf einem LCD ausgeben werden. Dabei soll aber nur eine Nachkommastelle erhalten bleiben.

    Frage:
    Wie kann ich die restlichen Nachkommastellen abschneiden, so dass nur eine übrig bleibt?

    Danke!

  2. #2
    Erfahrener Benutzer Roboter Genie Avatar von Willa
    Registriert seit
    26.10.2006
    Ort
    Bremen
    Alter
    44
    Beiträge
    1.273
    z.B. so:
    Code:
    single=2.335345
    single=single*10
    single = ROUND( single )
    single=single/10
    ==> Single = 2.3
    Viele Grüße, William
    -> http://william.thielicke.org/

  3. #3
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    11.09.2007
    Beiträge
    211
    Hey,

    danke - es klappt, allerdings komischerweise nur beim ersten Durchlauf meines Loops. Ich hänge den Ausschnitt mal an, vielleicht siehst du den fehler?

    Code:
    Do
    Summe1 = 0
    Summe2 = 0
    
    N = 0
    
    Do
       Temp1 = Readfront()
       Temp2 = Readback()
    
       Summe1 = Summe1 + Temp1
       Summe2 = Summe2 + Temp2
    
       Waitms 50
       Incr N
    Loop Until N = 3
    
    
    Summe1 = Summe1 / N
    Summe2 = Summe2 / N
    
    
    'nachkommastellen entfernen
    Summe1 = Summe1 * 10
    Summe1 = Round(summe1)
    Summe1 = Summe1 / 10
    
    Summe2 = Summe2 * 10
    Summe2 = Round(summe2)
    Summe2 = Summe2 / 10
    
    Locate 1 , 4
    Lcd Summe1
    Locate 2 , 4
    Lcd Summe2
    
    Loop
    Grüße
    Alex

  4. #4
    Neuer Benutzer Öfters hier
    Registriert seit
    21.05.2009
    Ort
    Deutschland/Südhessen
    Beiträge
    12
    Oder spendiere Dir eine Stringvariable und schaue Dir den FUSING-Befehl in der Hilfe an. Vorteil: der ursprüngliche Wert der Single-Variablen belibt erhalten und Du gibst nur den formatieren Wert an die Stringvariable und dann ans LCD weiter.

    Code:
    $SIM
    dim MySingle as Single
    dim MyString as String * 10
    MySingle=12345.67890
    MyString=fusing(MySingle,"#.#")
    config LCD=16*2
    cls
    LCD MyString
    
    do
    loop
    end
    Cheers
    Christoph

Berechtigungen

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

12V Akku bauen