Как создать строку, чтобы она форматировала числа с плавающей запятой, чтобы они не имели конечной десятичной точки или цифр, если она была целым числом, но НЕ переключались на научную запись для больших чисел?
Когда я делаю:
float myFloat= 15.6f;
float myInt = 5.0f;
float myLarge = 7000000.0f;
sprintf(out, "my float is %g", myFloat);
sprintf(out, "my int is %g", myInt);
sprintf(out, "my large is %g", myLarge);
Я получаю что-то вроде:
my float is 15.6
my int is 5
my large is 7e+07f
Мне нужна вся строка в одном формате, которая даст 15,6, 5 и 700000.
Отредактированные комментарии причины не форматируют:
Я так и думал. но обертка довольно неудобна, так как строки формата встроены в более длинные строки формата:
sprintf(buf, "%d %g", myInt, myFloat);
как вы это заверните?
sprintf(buf, "%d %g", myInt, Wrapper(myFloat));??
что должен вернуть Wrapper? Или хуже:
sprintf(buf, "%d %s", myInt, Wrapper(myFloat));??