用c ++设置货币格式

| 有没有一种明显的方法可以在C ++中执行货币格式化? 例如:1978879将变成1 \'978 \'879 谢谢     
已邀请:
        简短答案:
int value = 1978879;
std::cout.imbue(std::locale(\"\"));
std::cout << value << std::endl;
语言环境负责格式化。任何流都可以充满语言环境;默认情况下,它们使用全局语言环境,默认情况下是\“ C \”语言环境,它不使用任何千位分隔符。通过使用空字符串作为参数创建一个语言环境实例,我们将使用用户的语言环境,在您的情况下,该语言环境可能是Swiss。 您还可以指定一个显式的语言环境名称,但是名称因平台(Linux / Windows)而异,并且并非所有系统都支持所有语言环境。 如果要获取字符串,最简单的方法可能是使用字符串流(来自
<sstream>
头):
std::ostringstream stream;
stream.imbue(std::locale(\"\"));
stream << value;
std::string stringValue = stream.str();
尽管您也可以直接使用语言环境的构面,但这更加复杂。 您还可以设置全局语言环境,所有流都将使用该语言环境(除非它们特别具有不同的语言环境):
std::locale::global(std::local(\"\"));
    
        看一看标准的C ++本地化库。它不是那么简单,但是您可以通过num_get / numpunct方面来实现。     

要回复问题请先登录注册