string to float

Arduino specifieke Software
Berichten: 15
Geregistreerd: 21 Feb 2013, 21:55

string to float

Berichtdoor logger » 27 Mei 2013, 12:38

Hi

ik lees een temperatuur in uit een file , met
float actual = buienradarClient.parseFloat();

ik heb dan een float , maar soms is het geen getal maar een tekst "---" ( sensor not responding) en dit wordt blijkbaar ook omgezet naar 0.00 in de float

ik dacht lees ik een string in met bijvoorbeeld
string w = buienradarClient.readStringUntil("");
if (w == "---")
//geen getal , maar een string
else
//omzetten naar float

dit werkt , maar als de sting bestaat uit een getal bijvoorbeeld "0.0" of "-10.0", moet het een float worden , zodat ik ermee kan rekenen

Hoe kan ik dit simpel opzetten

ik kwam op internet de code tegen

float Temperature::convertStringtoFloat(String convert)
{
char test_as_char[convert.length()+1];
convert.toCharArray(test_as_char, convert.length()+1);
float myFloat = atof(test_as_char);
return myFloat;
}

maar ik snap niet wat met deze code gebeurt . ik stop een string erin en krijg een float terug OK, maar hoe werkt i , en hoe zit het met de lengte van de string
kan iemand dit uitleggen ???

Advertisement

Gebruikers-avatar
Berichten: 5043
Geregistreerd: 13 Mei 2013, 20:57
Woonplaats: Heemskerk

Re: string to float

Berichtdoor nicoverduin » 27 Mei 2013, 19:58

Wat hij doet is het volgende (per statement regel):
- Creer een array voor het aantal tekens ('\0') op het einde van de string ('\0' = string terminator)
- Kopieer de string naar de array
- atof skipt alle voorlopende spaties en converteerd dan naar een floating point getal). Deze functie stopt na het teken dat niet meer voldoet voor de floating point. Dus lengte speelt op zich geen rol.
- geef de float terug

Wat er gebeurt als je er " 12.4233534564345797959793973579375975979479579379 dit is een testje" in stopt met zoveel decimalen vermoed ik dat hij gewoon naar 7-8 decimalen er mee kapt. Maar ik ken de precisie van de arduino niet zo ff.
Docent HBO Technische Informatica, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

Berichten: 15
Geregistreerd: 21 Feb 2013, 21:55

Re: string to float

Berichtdoor logger » 28 Mei 2013, 08:15

ok redelijk duidelijk, ik ga eens kijken wat er uit komt als ik deze in de arduino zet

bedankt

Terug naar Arduino software

Wie is er online?

Gebruikers in dit forum: Geen geregistreerde gebruikers en 28 gasten