- LiFePO4 Speicher Test         
Ergebnis 1 bis 10 von 13

Thema: float in String umwandeln

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #4
    HaWe
    Gast
    @shedepe, Ceos
    hier gilt das gleiche wie in einem anderen Thread bezgl. i2c:

    Ihr vergesst leicht, dass Arduino != C/C++ ist.
    Arduino benutzt es zwar , aber es IST es nicht.

    sprintf z.B. funktioniert bei Arduino auf AVR cores z.B. nur für ints, aber ÜBERHAUPT NICHT für floats, es ist in lib.c disabled.
    Nur auf ARM Arduinos funktioniert es.

    Auch vsprintf gibt es für AVR core komplett überhaupt nicht (!),egal für welche Datentypen.
    Bei ARM Arduinos hingegen doch, mit vollem stdio.h Funktionsumfang.

    Aber auch die FILE -bezogen Varianten von stdio.h gibt es auf Arduinos nicht (fprintf, fscanf, fgets), da es für SD irrsinnigerweise bei Arduino kein Filesystem gibt.


    Also: erst den Arduino Playground und Arduino Foren befragen, bevor hier zu vorschnell aus der Hüfte geschossen wird.

    Für ARMs funktioniert also
    Code:
    char * str[20];
    float fvar;
    sprintf( str, "%8.3f", fvar);
    perfekt, aber nicht für AVRs.
    Hier muss man sich behelfen mit etwas wie


    Code:
    char *  ftos(char*str, int len, int prec, double var) {
       int16_t l, p;
       
       dtostrf(var,len,prec,str);
        
       l = strlen(str); 
       p = strchpos(str, '.');  
    
       if (l>len && p<len ) {  
          dtostrf( var,len, max(0,len-p-1), str );  
       } 
       else
       if ((p<=0 || p>=len) && l>len) { 
          p= max(0,len-6); 
          l= strlen( dtostre( var, str, p, 0 ) );
          if(l<len && p==0) {
            strcat(str, " ");  
          }
       }    
       return str;   
    }

    Als Sparvariante funktioniert dabei dtostrf(var,len,prec,str); auch alleine.


    Wenn Ihr also C/++ Lösungsideen postet, seid euch darüber bewusst, dass nicht alles auch auf Arduinos funktioniert, was es gemeinhin für g++ gibt.

    Hinweise wie " kann man das auch recht schnell selber implementieren " sind aber in jedem Falle alles andere als hilfreich und können eigentlich nur als arrogante Ohrfeige für den Fragesteller empfunden werden.
    Geändert von HaWe (08.03.2017 um 14:52 Uhr)

Ähnliche Themen

  1. Integer in String umwandeln????
    Von KüSä im Forum PIC Controller
    Antworten: 12
    Letzter Beitrag: 20.12.2008, 20:56
  2. byte umwandeln in string
    Von xcool im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 10
    Letzter Beitrag: 30.11.2008, 22:09
  3. String zerlegen und umwandeln ?!
    Von Roberto im Forum C - Programmierung (GCC u.a.)
    Antworten: 34
    Letzter Beitrag: 08.08.2007, 10:27
  4. Float, Double to String, Display ATMega16 Belichtungstimer
    Von Timo_P im Forum C - Programmierung (GCC u.a.)
    Antworten: 1
    Letzter Beitrag: 01.04.2007, 18:36
  5. string in zahl umwandeln
    Von pebisoft im Forum C - Programmierung (GCC u.a.)
    Antworten: 5
    Letzter Beitrag: 09.06.2005, 14:20

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Solar Speicher und Akkus Tests