PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Vorschlag für die lib: PrintFloat



M1.R
15.11.2007, 21:55
Hallo,

analog zur Funktion PrintInt habe ich die Funktion PrintFloat geschrieben.

void PrintFloat (float wert, char vorkomma, char nachkomma)
// vorkomma + nachkomma max 7
{
char text [10];

dtostrf(wert, vorkomma, nachkomma, text);
SerPrint (text);
}
Über Verbesserungsvorschläge bin ich wie immer dankbar.

Beispielprogramm:

#include <stdlib.h>
#include "asuro.h"

void PrintFloat (float wert, char vorkomma, char nachkomma)
// vorkomma + nachkomma max 7
{
char text [10];

dtostrf(wert, vorkomma, nachkomma, text);
SerPrint (text);
}


int main(void)
{
Init ();

SerWrite ("\r\n", 2);
PrintFloat (123.4567, 3, 4);
SerWrite ("\r\n", 2);

SerWrite ("\r\n", 2);
PrintFloat (-123.4567, 5, 2);
SerWrite ("\r\n", 2);

SerWrite ("\r\n", 2);
PrintFloat (-1.234567, 1, 6);
SerWrite ("\r\n", 2);

SerWrite ("\r\n", 2);
PrintFloat (1.234567, 1, 3);
SerWrite ("\r\n", 2);

while (1);
return 0;
}

Gruss
M.

damaltor
15.11.2007, 23:29
wäre ne idee für die lib. nicht schlecht.. die stdlib.h, muss die dazu mit eingebunden werden?

Sternthaler
16.11.2007, 03:05
Hallo M1.R,
ja, scheint mir eine sinvolle Lösung für das vermaledeite sprintf (xx, "%f", yy)-Problem zu sein.

Das mit dem eventeull notwendigen #include kann man dann ja in der Source-Datei zu dieser Funktion lösen, so dass der Benutzer der Lib da nichts mit zu hat.

Ähhm, nur so am Rande:
Wäre es nicht besser gewesen, diesen Vorschlag direkt in m.a.r.v.i.n.s Thread neue Asuro Lib V2.70 (Release Candidate 3) (https://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=26594) zu schreiben?

Gruß Sternthaler

damaltor
16.11.2007, 20:29
hmm vermutlich schon, aber so schlimm ist das nicht... es hat bewirkt was es sollte. evl könntest du, M1.R, deinen ersten beitrag bearbeiten und den titlel so ändern dass man sieht dass es um eine eventuelle aufnahme in die lib geht.

M1.R
16.11.2007, 21:14
die stdlib.h, muss die dazu mit eingebunden werden?
nein - wird in der asuro.h (lib 2.7) eingebunden
Gruss
M.

izaseba
17.11.2007, 13:15
Hallo M1.R,

Frage, wozu braucht man auf dem Asuro Fließkommazahlen ?

Gruß Sebastian

EDIT:
Ich sehe schon https://www.roboternetz.de/phpBB2/viewtopic.php?p=328506
sonst hätte ich den Vorschlag gemacht, für die wenigen Fälle, wo man sowas braucht (Batteriespannung ausgeben ?) auf Festkomma zu setzen, was sicherlich Resorcenschonender wäre.

Sternthaler
17.11.2007, 19:11
Hallo zusammen.

@M1.R
Deine Funktion ist in der nächsten Version 2.71 mit in der Lib.
m.a.r.v.i.n hat mich gerade angemailt um mal darüber zu sehen.
Somit ist mein Gejammer überflüßig gewesen.

[EDIT]
@izaseba
Ich bin seit einiger Zeit dabei dem Kleinen beizubringen, dass er weiss wo er ist. Da hat sich so einiges an Mathe angesammelt und bis jetzt ist es (mir) noch nicht klar ob bzw. wie ich auf float verzichten kann. (Natürlich ist der Matheteil nicht auf meinem Mist gewachsen, sondern von kompetenten Forummitgliedern gemacht.)
Das ganze ist unter Algorithmn zur Bahnplanung (https://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=33739) zu finden. Ist viel OT dabei, aber die ursprünglich gestellte Frage hat mich irgendwie interessiert.

Gruß Sternthaler