Salve,
immagino che sia un argomento trito e ritrito, ho cercato sia su questo forum, che su goggle, ho fatto anche diverse prove, ma non mi è chiaro.
Quando scrivo
float var = 1234.56789;
Serial.printf("Var = %2.4f",var);
il 4 sono le cifre dopo la virgola, invece il 2 cosa significa?
Ho fatto varie prove cambiando il 2 in numeri diversi, ma mi è sembrato che non abbia nessuna influenza.
Hai ragione con Arduino non va
Stavo usando un ESP32.
Non conosco la toolchain ESP, per AVR la pritf su float è disabilitato e per abilitarlo bisogna aggiungere -lfprintf per includere la libreria in fase di compilazione.
Grazie Maurotec,
avevo visto la pagina di cplusplus, ma non mi era molto chiara, perché avevo l'impressione che non si comportasse come scritto:
"Minimum number of characters to be printed. If the value to be printed is shorter than this number, the result is padded with blank spaces. The value is not truncated even if the result is larger."
Piccole differenze legate alla piattaforma (CPU 32-bit e 64-bit) dipendono dalla implementazione ovviamente, se le noti posta qui almeno rimane traccia.
Tutto bello, bella la boiserie, però concordo con Standardoil: il problema era risolvibile con un poco di ricerche e di sforzo, non mi piace mai dare la "pappa pronta". Ma vabbè....
Maurotec:
Non conosco la toolchain ESP, per AVR la pritf su float è disabilitato e per abilitarlo bisogna aggiungere -lfprintf per includere la libreria in fase di compilazione.
Ciao.
Ho seguito il thread, ma scusate, almeno per me non è chiaro, alla fine.
Anche compilando per Esp32 bisogna aggiungere -lfprintf ??