Bascom Basom Punkt bei LCD

dg2ygq

Neues Mitglied
23. Juli 2007
239
0
0
Bielefeld
Sprachen
Ich habe ein LCD (16x2) auf dem ich eine 5stellige Zahl anzeigen möchte.
Nun möchte ich aber nach der 2. Stelle einen Punkt haben, also " 12.345".
Diese Zahl ist in einer Word-Variable.

Mit dem "Fusing"_Befehl erscheint immer eine Fehlermeldung : Single expected.

Was mach ich falsch bzw wie muss ich das richtig schreiben?
 
Hallo,

Ich habe ein LCD (16x2) auf dem ich eine 5stellige Zahl anzeigen möchte.
Nun möchte ich aber nach der 2. Stelle einen Punkt haben, also " 12.345".
Diese Zahl ist in einer Word-Variable.
immer nach der 2ten Stelle ? Also auch zB 34.21 oder 76.4325 ? Oder soll der Punkt
als Tausendertrennung dienen ?

Ich tippe mal, du kommst da nicht um eine Wandlung in einen String und dann mit ein
wenig Bearbeitung dieser Textvariablen drum herum.

Gruß
Dino
 
Ja, soll als tausendertrennung sein! 2-stellige Tausender und 3-stellige Nachkommazahl.
Wie geschrieben ist die Zahl jetzt in einer Word-Variable. Da muss sie dann ja irgendwie raus um weiter bearbeitet zu werden?!
 
Hallo!

Tja, mit FUSING() kann es auch nicht funktionieren, denn es kann dir z.B. nur eine formatierte Kommazahlausgeben.
Beispiel:
Word = 32768
String = FUSING(Word , "'##.###")
theoretische Ausgabe--> String = 32768,000 :wink:


Mir ist keine "fertige" Möglichkeit in BASCOM bekannt die eine feste Tausender-Markierung einfügt.
Letztlich würde es auf einem Display dann aber auch wie eine Kommazahl aussehen. :cool:

Wenn es dir aber nur um die Anzeige geht, dann geht das vermutlich nur über eine Rechenoperation und die Wandlung über FUSING() .....mit Ausgabe des Strings.


Grüße,
Cassio
 
OK, dann brauch ich die Word-Variable ja nur in eine ???????-Varible kopieren und durch 1000 teilen. (Der Wert der Variablen liegt zwischen 25000 und 30000)
Nur wie mach ich das und welcher Variablentyp fasst NachKommastellen ? Single?

Hilfeeeeeeeeee
 
Hallo!

Natürlich kannst du die Zahl einfach durch Tausend teilen und fertig.

Wie deine Fehlermeldung dir ja schon verraten hat.....
Mit dem "Fusing"_Befehl erscheint immer eine Fehlermeldung : Single expected.
benötigst du für Kommastellen eine Single-Variable. :wink:

Wenn du eine Single verwendest, dann kannst du mit :
Code:
Config Single = Scientific , Digits = 3
automatisch alle Single-Variablen im System auf drei Nachkommastellen begrenzen und musst nicht mehr mit FORMAT() oder einem FUSING() -String arbeiten.


Grüße,
Cassio
 
Alle Variablen vom Typ Word

Vorkomma = Word / 1000
Nachkomma = Word Mod 1000

Locate y , x
Lcd Vorkomma ; "."
If Nachkomma < 100 Then Lcd "0"
If Nachkomma < 10 Then Lcd "0"
Lcd Nachkomma

SickBoy
 

Über uns

  • Makerconnect ist ein Forum, welches wir ausschließlich für einen Gedankenaustausch und als Diskussionsplattform für Interessierte bereitstellen, welche sich privat, durch das Studium oder beruflich mit Mikrocontroller- und Kleinstrechnersystemen beschäftigen wollen oder müssen ;-)
  • Dirk
  • Du bist noch kein Mitglied in unserer freundlichen Community? Werde Teil von uns und registriere dich in unserem Forum.
  •  Registriere dich

User Menu

 Kaffeezeit

  • Wir arbeiten hart daran sicherzustellen, dass unser Forum permanent online und schnell erreichbar ist, unsere Forensoftware auf dem aktuellsten Stand ist und der Server regelmäßig gewartet wird. Auch die Themen Datensicherheit und Datenschutz sind uns wichtig und hier sind wir auch ständig aktiv. Alles in allem, sorgen wir uns darum, dass alles Drumherum stimmt :-)

    Dir gefällt das Forum und unsere Arbeit und du möchtest uns unterstützen? Unterstütze uns durch deine Premium-Mitgliedschaft!
    Wir freuen uns auch über eine Spende für unsere Kaffeekasse :-)
    Vielen Dank! :ciao:


     Spende uns! (Paypal)