Namespaces
Variants

std::moneypunct<CharT,International>:: frac_digits, do_frac_digits

From cppreference.net
Definido en el encabezado <locale>
public :
int frac_digits ( ) const ;
(1)
protected :
virtual int do_frac_digits ( ) const ;
(2)
1) Función miembro pública, llama a la función miembro do_frac_digits de la clase más derivada.
2) Devuelve el número de dígitos que se mostrarán después del punto decimal al imprimir valores monetarios.

Valor de retorno

El número de dígitos que se mostrarán después del punto decimal. En configuraciones regionales comunes de EE. UU., este es el valor 2 .

Ejemplo

#include <iomanip>
#include <iostream>
#include <iterator>
#include <locale>
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';
}

Salida:

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

Véase también

proporciona el carácter a utilizar como separador de miles
(función miembro protegida virtual)
proporciona el carácter a utilizar como punto decimal
(función miembro protegida virtual)