c++ - 使用 double 值的货币格式

标签 c++ format currency

如何从 double 值中获取货币格式?以下代码片段适用于整数,但不适用于 double ?!

#include <locale.h>
#include <iostream>
#include <iomanip>
#include <sstream>

using namespace std;

int main(void)
{
    ostringstream stream;
    stream.imbue(std::locale(""));
    stream << setprecision(3) <<194663.33;
    string stringValue = stream.str();
    cout << stringValue;
    return 0;
}

最佳答案

像这样:

#include <iostream>
#include <iomanip>

class punct_facet: public std::numpunct<char>
{
    char do_decimal_point() const { return '.'; }
    char do_thousands_sep() const { return ','; }
    std::string do_grouping() const { return "\03"; }
};
void main()
{
    std::cout.imbue(std::locale(std::cout.getloc(), new punct_facet));
    std::cout << std::fixed << std::setprecision(2);
    std::cout << "Formatted number: " << 194663.33 << std::endl;
}

输出:

Formatted number: 194,663.33

您可以在此处找到更多信息:

关于c++ - 使用 double 值的货币格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22104371/

相关文章:

iphone - 是否可以从货币代码中导出货币符号?

c++ - 减少 C++ 代码中的循环次数是否有助于提高速度?

c++ - 我们可以使用可变参数模板函数来过滤特定类型的参数,然后将其余的传递给另一个函数吗?

powershell - ffmpeg - ffprobe 持续时间格式更改

c++ - For循环不更新结构对象

format - 这是哪种私钥格式?

ruby-on-rails - 创建属性 'currency'的弃用警告

sql - SQL Server Money 数据类型需要更高的精度

C++ 类和访问

c++ - 从临时的赋值和引用初始化