Преобразование значения с плавающей запятой в строку без десятичного разделителя - PullRequest
0 голосов
/ 08 января 2019

У меня есть значения с плавающей точкой в ​​диапазоне от 00.00 до 99.99. Я пытаюсь преобразовать значение с плавающей точкой в ​​строку вместе с преобразованием следует удалить десятичный разделитель.

flaot a = 00.17;
float b = 08.56;

Чтобы удалить десятичный разделитель, я умножаю на * 100 и преобразую в строку, используя функцию ftoa().

a = a*100;
b = b*100;

ftoa(a, 0, temp_string);
puts(temp_string); 
ftoa(b, 0, temp_string);

output is: 17, 856, 2898

Моя строка вывода должна выглядеть следующим образом

output: 0017,0856,2898

Я могу добавить 0 к строке с условием, что число меньше 99, добавить два нуля, а если выше 99 и ниже 999, добавить один ноль.

Есть ли лучший способ сделать эту работу?

1 Ответ

0 голосов
/ 08 января 2019

Используя printf / sprintf, вы можете указать ширину числа, которое хотите печатать, и, следовательно, иметь начальные 0.

a = a*100;
b = b*100;
c = c*100;
printf ("a=%04.0f b=%04.0f", a, b);

дает:

a=0017 b=0856

Подробнее

см. http://www.cplusplus.com/reference/cstdio/printf/

sprintf отформатирует строку вместо печати в stdout, чтобы вы могли затем вывести это как хотите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...