// returns temperature in degrees C
float getTempC(uint8_t*);
// returns temperature in degrees F
float getTempF(uint8_t*);
// Get temperature for device index (slow)
float getTempCByIndex(uint8_t);
// Get temperature for device index (slow)
float getTempFByIndex(uint8_t);
So, yes all the methods to get the temperature return a float, not an int.
Your buffer will need to be larger, and you'll need to use ftoa(), instead of itoa(). After that, you'll need to put more characters to the display.
lcd24x16_base___temperatura.cpp: In function 'void loop()':
lcd24x16_base___temperatura:112: error: invalid conversion from 'char*' to 'signed char'
c:/users/daniele/desktop/varie2/arduino-0023/hardware/tools/avr/lib/gcc/../../avr/include/stdlib.h:581: error: too few arguments to function 'char* dtostrf(double, signed char, unsigned char, char*)'
lcd24x16_base___temperatura:112: error: at this point in file
danielb:
error: too few arguments to function 'char* dtostrf(double, signed char, unsigned char, char*)'
You aren't passing the correct number and type of arguments to dtostrf(). The documentation tells you what it expects. Only you know what you're actually providing, since we can't see your code, but it's obviously not correct. Change your code so it passes the arguments that the function expects.
I think you would do better to consider the code that Paul provided as an example and an opportunity to think about how it applies to your situation rather than something to just paste into your code and report back that it doesn't work.
You should ask yourself questions like
How wide do I want the number to be? e.g. "22.51345" would be 8 wide
What precision do I want it to have ? e.g. "-23.434" would be a precision of 3.
and
Is my buffer[] big enough to hold it?
Do I have room to put it on the LCD buffer[0], buffer[1], buffer[2],... buffer[width-1]
You are asking for 5 characters in the output, with two digits after the decimal point, so something like 23.45. Then, you are showing 4 characters on the LCD (23.4). Why?