Go Down

Topic: Newbie Question (1 of lol) (Strings/Floats) (Read 499 times) previous topic - next topic

cjdelphi

  bmp085_read_temperature_and_pressure(&temperature,&pressure);
  pressure = pressure - 10696; //adjust for sea level

    client.print("The Temperature Is ");
      client.print(temperature,DEC);
      client.println();
      client.print("The Barometer Reading: ");
      client.print(pressure,DEC);
      client.println();


The output looks something like this. "The Temperature Is 239 The Barometer Reading: 10334"


Now my issue, it's not 239 degrees in here nor is the pressure reading 10334, infact.. it's 23.9c and the pressure is 1033.4. How exactly do i get a . into the string? (simply insert a . and send it as a string) ..


Thanks :)

(p.s Really enjoying Arduino, just that my background is in Pascal not C and it's a little difficult to adjust)


cjdelphi

char c;
  int temperature;
  long pressure;

Incase you were wondering.

scrineym

#2
Mar 16, 2012, 04:26 pm Last Edit: Mar 16, 2012, 04:29 pm by scrineym Reason: 1
You could try to include Stdio.h into your code "#include <stdio.h>" in here is a function called sprintf and also printf (stands for print formatted) which can be used to print strings in a specified format

See here: http://www.c-for-dummies.com/lessons/float2string/
In here there's a tutorial for working with sprintf where he has a float which is pi, he divides this by 2 and can print it out as a string with the '.'

Code: [Select]
#include <stdio.h>

int main()
{
  float pi = 3.141596;
  char halfpie[80];
  pi/=2;

  sprintf(halfpie, "%f", pi);
   printf("Here is the result: %s\n", halfpie);
  return 0;
}


This returns
Quote
Here is the result: 1.570798


Here's a link for working with sprintf
http://linux.die.net/man/3/sprintf

Also here's the arduino's own page on working with printf and sprintf
http://arduino.cc/playground/Main/Printf

Finally here's a better guide on the parameters ("%s" etc..) for these two functions

http://www.cplusplus.com/reference/clibrary/cstdio/printf/ for printf
http://www.cplusplus.com/reference/clibrary/cstdio/sprintf/ for sprintf

Hopes this helps :P

Go Up