fork(1) download
  1. #include <iostream>
  2. #include <iomanip>
  3. #include <locale>
  4. using namespace std;
  5.  
  6. class BRL : public numpunct<char>
  7. {
  8. protected:
  9.  
  10. //separador de milhar
  11. virtual char do_thousands_sep() const
  12. {
  13. return ',';
  14. }
  15.  
  16. //padrão de agrupamento dos milhares, de 3 em 3
  17. virtual std::string do_grouping() const
  18. {
  19. return "\03";
  20. }
  21. };
  22.  
  23. int main(int argc, char* argv[]){
  24. float _valor = 1022.33;
  25.  
  26. //instanciando um locale que utilizará a especialização de numpunct
  27. locale br(locale(), new BRL());
  28.  
  29. //configurar no cout o locale que será utilizado nas formatações
  30. cout.imbue(br);
  31.  
  32. //setprecistion() é necessário para configurar precisão de apenas duas casas decimais
  33. //fixed é necessário para que o valor não seja impresso como notação científica.
  34. cout << "R$ " << setprecision(2) << fixed << _valor;
  35.  
  36. return 0;
  37. }
Success #stdin #stdout 0s 3476KB
stdin
Standard input is empty
stdout
R$ 1,022.33