Das Deutsche Casio-Taschenrechner Forum wurde zum 31.12.2013 geschlossen und kann weiterhin als Nachschlagewerk verwendet werden.
Wer mehr erfahren möchte: Ein sehr guter Beitrag von Elias

double in char[] konvertieren

Hilfe beim Programmieren mit dem fx-9860G SDK.

double in char[] konvertieren

Beitragvon UserXXX » Do 30. Jun 2011, 20:07

Tag zusammen,

ich hab vor wenigen Tagen angefangen mit dem Casio fx-9860G SDK zu programmieren und will jetzt eine als double vorliegende Zahl in einen char[] konvertieren um ihn ausgeben zu können, bei der Suche hab ich hier in den Foren folgenden Beispielcode gefunden, der eine Zahl in eine Zeichenkette konvertieren soll:

Code: Alles auswählen
char ctest[4];
sprintf(ctest, "%d", 123 );
locate(1,1);
Print((unsigned char*)ctest);


Der Code kompiliert auch, aber wenn ich dann das Addin starte bekomme ich folgenden Fehlerhinweis:

System ERROR
REBOOT :[EXIT]
INITIALIZE:[EXE]
TLB ERROR!!
TARGET=00002B38
PC =00000004

Was mache ich falsch?

Danke schon mal im Voraus,
UserXXX
UserXXX
 
Beiträge: 3
Registriert: Do 30. Jun 2011, 19:42
Taschenrechner: fx-9860GII

Re: double in char[] konvertieren

Beitragvon Paul94 » Fr 1. Jul 2011, 10:18

Ich habe damals diese Frage gestellt und von SImon den von dir aufgeführten Code bekommen. Ich hatte damals auch das gleiche Problem wie du. Du musst, wenn du die Funktion sprintf verwendest neben der fxlib.h auch stdio.h mit einbinden. Dann gehts.

Paul
Paul94
 
Beiträge: 219
Registriert: Do 14. Mai 2009, 06:50
Taschenrechner: FX-9860G (OS 2.00.0200)
FX-CG 20

Re: double in char[] konvertieren

Beitragvon UserXXX » Fr 1. Jul 2011, 11:35

Danke für die schnelle Antwort, funktioniert, aber wenn ich jetzt eine double konvertieren möchte, bspw. 123.456 gibt er mir noch drei Nullen mit aus, kann ich das irgendwie verhindern oder muss ich den char[] nachträglich bearbeiten?

Der Code den ich zum konvertieren verwende lautet:
Code: Alles auswählen
char ctest[4];
sprintf(ctest, "%f", 123.456 );
locate(1,1);
Print((unsigned char*)ctest);


Und die Ausgabe:
123.456000

UserXXX
UserXXX
 
Beiträge: 3
Registriert: Do 30. Jun 2011, 19:42
Taschenrechner: fx-9860GII

Re: double in char[] konvertieren

Beitragvon UserXXX » So 3. Jul 2011, 18:46

Hab meinen Fehler gefunden, falsches Formatierungszeichen :D

%i int
%c char
%f double, es werden immer 6 Nachkommastellen mit ausgegeben (man kann das verändern indem man hinter dem "%" angibt wieviele Stellen man haben möchte, nach diesem Schema: Vorkommastellen.Nachkommastellen z.B. %8.2f)
%g double, es werden so viele Nachkommastellen angezeigt, wie vorhanden sind

Nur eine kleine Zusammenstellung, mehr dazu hierhttp://home.fhtw-berlin.de/~junghans/cref/FUNCTIONS/format.html

UserXXX
UserXXX
 
Beiträge: 3
Registriert: Do 30. Jun 2011, 19:42
Taschenrechner: fx-9860GII


Zurück zu fx-9860G SDK (Alle fx-9860G Modelle)

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

cron