LINUX.ORG.RU

C++, как выводить float в std::ostream << так, чтобы целая часть от дробной отделялась запятыми?


0

1

Совет «Установи локаль» не поможет - там столько тонкостей, что без конкретного куска кода не разобраться. Дайте пожалуйста кусок кода, который гарантированно выведет в std::fstream тип float с запятой в качестве разделителя целой и дробной частей при любой системной локали.

чтобы целая часть от дробной отделялась запятыми

BDSM?

Eddy_Em ☆☆☆☆☆ ()

Создай обертку над float и печатай в ней как душе угодно.

staseg ★★★★★ ()

http://stackoverflow.com/questions/1422151/how-to-print-a-double-with-a-comma

#include <locale>
#include <iostream>

template<typename CharT>
class DecimalSeparator : public std::numpunct<CharT>
{
public:
	DecimalSeparator(CharT Separator)
		: m_Separator(Separator)
	{}

protected:
	CharT do_decimal_point()const
	{
		return m_Separator;
	}

private:
	CharT m_Separator;
};

int main()
{
	float v = 2.5;
	std::cout << v << std::endl;
	std::cout.imbue(std::locale(std::cout.getloc(), new DecimalSeparator<char>(',')));
	std::cout << v << std::endl;
	return 0;
}

P. S. лор полон мудаков и неосиляторов гугла.

anonymous ()
Ответ на: комментарий от trashymichael

Смысл? Тебе любой анонимус за 5 минут всё нагуглит без проблем.

kiverattes ★☆ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.