do_frac_digits

std::moneypunct::frac_digits, do_frac_digits

Defined in header <locale>
public:
int frac_digits() const;
(1)
protected:
virtual int do_frac_digits() const;
(2)
1) Public member function, calls the member function do_frac_digits of the most derived class.
2) Returns the number of digits to be displayed after the decimal point when printing monetary values

Return value

The number of digits to be displayed after the decimal point. In common U.S. locales, this is the value 2.

Example

#include <locale>
#include <iostream>
#include <iomanip>
#include <iterator>
struct space_out : std::moneypunct<char> {
    pattern do_pos_format()      const { return { {value, none, none, none} };}
    int do_frac_digits()         const { return 0; }
    char_type do_thousands_sep() const { return ' ';}
    string_type do_grouping()    const { return "\002";}
};
int main()
{
    std::cout.imbue(std::locale("en_US.UTF-8"));
    std::cout << "american locale: " << std::showbase
              << std::put_money(12345678.0)<< '\n';
 
    std::cout.imbue(std::locale(std::cout.getloc(), new space_out));
    std::cout << "locale with modified moneypunct: "
              << std::put_money(12345678.0)<< '\n';
}

Output:

american locale: $123,456.78
locale with modified moneypunct: 12 34 56 78

See also

[virtual]
provides the character to use as thousands separator
(virtual protected member function)
[virtual]
provides the character to use as decimal point
(virtual protected member function)

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
http://en.cppreference.com/w/cpp/locale/moneypunct/frac_digits

在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号

意见反馈
返回顶部