DS18B20 - Round Temperature

Hi All,
I'm using DS12B20, with the example I've the temperatura displayed like this :

12.23

20.37

etc etc

I would like to round the temperature for example see:

12.20

20.40

Is possible ? Thanks for the information,

Gnux

Is Arduino Playground - PrintFloats any help ?

Ciao UKHeliBob,
Thanks you for the link, I've play a little bit with it ... but I would like print on my display and not on Serial ...

But is not possible to pass printFloat() function to LCD.print() function ...

any other ideas ?

I was thing to convert in string and then take left string could be possible ?

Regards,
Andrea

Which LCD library are you using? Does it derive from the Print class?

Hi,
i'm using LiquidCrystal.h

Regards,
Gnux

round the number e.g. by moving to integer domain.

pseudo code

float temp =12.34
int t = temp * 10 + 0.5;  // t = 123   (.9)  t is temp in tenths
print t/10;  // integer part
print .
print t%10;  //decimal part
print 0;

(if temp < 0 code might differ slightly)

From LiquidCrystal.h:

class LiquidCrystal : public Print {

So, LCD.print(someFloat, 1);
will show someFloat on the LCD rounded to one decimal place.

The OP wants a trailing zero :wink:

Thanks Guys for the suggest,
I will try and then I'll let you know ...

Have nice week end,
Gnux

Yes It's working with the round suggest by Paul !

Thanks you again,
Regards,
Gnux

Does it round or does it truncate ?

from print.cpp

 // Round correctly so that print(1.999, 2) prints as "2.00"
  double rounding = 0.5;
  for (uint8_t i=0; i<digits; ++i)
    rounding /= 10.0;

rounding it does