au final j'ai fait par moi même
et ça marche plutôt bien
String get_printable_measure(float measure) {
float tmp = 0;
char unit;
char buffer[8];
String result;
if (measure < pow(10, -6)) {
tmp = measure * pow(10, 9);
unit = 'n';
} else if (measure < pow(10, -3)) {
tmp = measure * pow(10, 6);
unit = 'u';
} else if (measure < pow(10, 0)) {
tmp = measure * pow(10, 3);
unit = 'm';
} else if (measure >= pow(10, 9)) {
tmp = measure * pow(10, -9);
unit = 'G';
} else if (measure >= pow(10, 6)) {
tmp = measure * pow(10, -6);
unit = 'M';
} else if (measure >= pow(10, 3)) {
tmp = measure * pow(10, -3);
unit = 'K';
}
result = dtostrf(tmp, 3, 3, buffer);
return result + ' ' + unit;
}
par contre c'est crade, et ca aurais sans doute besoins d'un peu d'optimisation, mais tant que ca marche ^^