
|
INFO - FAQ - CC2-Forum - CCPro-Forum |
|
> Hallo, > > noch schnell eine Sünde im alten Jahr. > > > Ich würde das mit Kommazahlen durch eine Skalierung machen: > > > > 165 als Kommazahl: > > > > a = 165 > > aVorkomma = a / 100 > > aNachkomma = a MOD 100 > > > > PRINT aVorkomma & "," & aNachkomma > > Vorsicht! > > Ganz so einfach geht es leider nicht. Sobald MOD < 10 ist, kommt dabei Mist raus (im > Beispiel des Fragestellers kann das zwar nicht passieren, da der Ausgangswert vorher mit > 50 multipliziiert wird und die letzte Stelle daher immer 0 ist, trotzdem...). > > Nehmen wir an der Wert laute 2011, dann würde bei dieser Methode das Ergebnis richtig > mit 20,11 ausgegeben. Beträgt der Wert aber z.B. 2009, würde die Anzeige 20,9 ausgeben. > > Für solche Fälle ist eine Funktion angebracht: > > function showvalue_komma2() > lcd.print value/100 & "," > if (value mod 100) < 10 then lcd.print "0" & value mod 100 > if (value mod 100) >=10 then lcd.print value mod 100 > lcd.print " " > end function > > > Natürlich wäre es sinnvoll, den Wert hier als Parameter zu übergeben, das habe ich aus > Gründen der Übersichtlichkeit weggelassen. > > Grüße > und guten Rutsch ins neue Jahr > Henrik Hallo, frohes Neues Jahr. Du hast Recht. Das simmt mit der "Nullkommanachstelle". Eventuell hilft die die FIXPOINT.BAS von BASIC++ im LIB Verzeichnis, da habe ich das richtig beachtet. Gruß, Stefan Meine Homepage: http://www.fdos.de/ccbpp |
| Antwort schreiben |