C ++ десятичное форматирование вывода - PullRequest
2 голосов
/ 09 февраля 2010

Я пишу двойное значение в файл. Числовое значение записывается с точкой в ​​качестве десятичного разделителя. Я хотел бы использовать запятую. Как я могу это сделать?

Ответы [ 3 ]

3 голосов
/ 09 февраля 2010

Обычным способом является использование локали с десятичным разделителем, установленным на запятую. Если ваша машина сконфигурирована для этого, вы можете просто использовать для нее безымянный язык:

std::cout.imbue(std::locale(""));
std::cout << 12345.67;
2 голосов
/ 09 февраля 2010

Вы можете найти ответ в предыдущем вопросе Это в основном меняет локаль, используемую потоками, которые вы используете.

0 голосов
/ 09 февраля 2010

думаю в библиотеке cmath

есть функция с именем modf, которая принимает число с плавающей точкой или двойное число, и указатель на число с плавающей точкой или двойное число и возвращает целое число. </p> <pre>double intPart; double fractPart; fractPart = modf(doubleValue, &intPart);

Таким образом, вы передаете двойное значение, оно возвращает десятичную часть как целое число, а целочисленное значение сохраняется в указателе, который вы передали.

Затем вы можете записать их в файл так, как вы хотите, с запятой в середине или чем-то еще, просто запишите это как два отдельных числа. float или double

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