INFO - FAQ - CC2-Forum - CCPro-Forum |
|
> Ich glaube aber eher in die andere Richtung: glauben is' nich *g* ich denke, du musst einfach die gesamte zahl zerlegen. ich habe mir einst in CCBaisc dafür eine universelle routine geschnitzt, welche komfortabel die ausgabe von dezimalen mit und ohne führungsnullen und mit und ohne komma erledigt, somit aber natürlich die zeichen einzeln ans display sendet (was bei CC I v 1.1 eh nicht anders geht) #INT_OUT 'Ausgabe von Integerwerten und Kommasimulation on maxstellen goto INT_OUT_1,INT_OUT_10,INT_OUT_100,INT_OUT_1000,INT_OUT_10000 #INT_OUT_10000 j = int_out / 10000 : gosub INT_OUT_ZERO_CHECK #INT_OUT_1000 j = (int_out / 1000) mod 10 : gosub INT_OUT_ZERO_CHECK #INT_OUT_100 j = (int_out / 100) mod 10 : gosub INT_OUT_ZERO_CHECK #INT_OUT_10 j = (int_out / 10) mod 10 : gosub INT_OUT_KOMMA_CHECK #INT_OUT_1 lcd_dat = int_out mod 10 + 48 : gosub SEND_CHAR return #INT_OUT_KOMMA_CHECK if komma_flag = -1 then goto zwangsnull else goto INT_OUT_ZERO_CHECK #zwangsnull lcd_dat = j + 48 : gosub SEND_CHAR lcd_dat = 44 : gosub SEND_CHAR return #INT_OUT_ZERO_CHECK lcd_dat = j + 48 if lcd_dat = 48 then goto check else gosub SEND_CHAR return #check if null_flag = -1 then goto printnull lcd_dat = 32 : gosub SEND_CHAR : return return #printnull lcd_dat = 48 : gosub SEND_CHAR return zur erklärung: dem unterprogramm wird der auszugebende wert in der varable int_out übergeben. zusätzlich benötigt es in der variante zwei flags: komma_flag und null_flag. je nach dem, ob diese flags gesetzt sind, wird ein zehntel-komma gesetzt oder nicht bzw wird eine zahl mit führenden nullen ausgegeben oder statt der nullen leerzeichen. ausserdem wird über den parameter maxstellen bestimmt, wieviele stellen die auszugebende zahl hat. in jedem fall ist so die ausgabe fest formatiert. schau dir das ruhig mal an und versuche, es für dich zu nutzen. umschreiben musst du dirs allerdings selbst, denn ich beherrsche nur CCBasic. gruß Kay |
Antwort schreiben |