{"id":233286,"date":"2023-02-09T12:07:00","date_gmt":"2023-02-09T09:07:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=233286"},"modified":"2023-02-09T12:08:16","modified_gmt":"2023-02-09T09:08:16","slug":"funcao-de-formato-de-numero-de-moeda-c","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/pt-pt\/funcao-de-formato-de-numero-de-moeda-c\/","title":{"rendered":"Fun\u00e7\u00e3o de formato de n\u00famero de moeda C++"},"content":{"rendered":"<blockquote>\n<p>Um centavo por seus pensamentos<\/p>\n<p>Dado um n\u00famero inteiro positivo n representando a quantidade de centavos que voc\u00ea tem, retorne o valor da moeda formatada. Por exemplo, dado n = 123456, retorne &quot;1.234,56&quot;.<\/p>\n<p>Exemplo 1<br \/>\nEntrada<br \/>\nn = 132<br \/>\nSa\u00edda<br \/>\n&#8220;1,32&quot;<\/p>\n<p>Exemplo 2<br \/>\nEntrada<br \/>\nn = 2<br \/>\nSa\u00edda<br \/>\n&#8220;0,02&#8221;<\/p>\n<p>Exemplo 3<br \/>\nEntrada<br \/>\nn = 100000000<br \/>\nSa\u00edda<br \/>\n&#8220;1.000.000,00&#8221;<\/p>\n<\/blockquote>\n<h3>Formatar um n\u00famero de moeda usando C++<\/h3>\n<p>Embora essa tarefa possa parecer simples com a fun\u00e7\u00e3o <a href=\"https:\/\/wordpress.mediadoma.com\/pt-pt\/substitua-a-caixa-de-pesquisa-embutida-do-wordpress-pela-pesquisa-personalizada-do-google\/\" title=\"embutida\">embutida<\/a>, como printf ou o formato String (em Python), implementar essa formata\u00e7\u00e3o de n\u00famero\/moeda parece n\u00e3o ser uma tarefa trivial. Primeiro, precisar\u00edamos obter a parte do centavo (fra\u00e7\u00e3o) calculando os dois \u00faltimos d\u00edgitos (resto por 100). Ent\u00e3o precisamos agrupar os <a href=\"https:\/\/helloacm.com\/power-digit-sum-what-is-the-sum-of-the-digits-of-the-number-21000\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">outros d\u00edgitos<\/a> em tr\u00eas.<\/p>\n<p>Precisamos de uma fun\u00e7\u00e3o de pad de string para adicionar os zeros \u00e0 esquerda para os grupos do meio e tamb\u00e9m o centavo (at\u00e9 2 d\u00edgitos, como 0,01). O grupo mais significativo n\u00e3o deve adicionar <a href=\"https:\/\/helloacm.com\/how-to-compute-the-number-complement-for-integers\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">zeros \u00e0 esquerda.<\/a> Os n\u00fameros s\u00e3o separados por v\u00edrgula.<\/p>\n<pre><code>string solve(int n) {\n\u00a0 \u00a0 auto pad = [](int v, int d) {\n\u00a0 \u00a0 \u00a0 \u00a0 string ans = std::to_string(v);\n\u00a0 \u00a0 \u00a0 \u00a0 if (ans.size() &lt; d) {\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 ans = string(d - (int)ans.size(), '0') + ans;\n\u00a0 \u00a0 \u00a0 \u00a0 }\n\u00a0 \u00a0 \u00a0 \u00a0 return ans;\n\u00a0 \u00a0 };\n\u00a0 \u00a0 int cents = n % 100;\n\u00a0 \u00a0 n \/= 100;\n\u00a0 \u00a0 vector&lt;int&gt; groups;\n\u00a0 \u00a0 while (n &gt; 0) {\n\u00a0 \u00a0 \u00a0 \u00a0 groups.insert(begin(groups), n % 1000);\n\u00a0 \u00a0 \u00a0 \u00a0 n \/= 1000;\n\u00a0 \u00a0 }\n\u00a0 \u00a0 string ans = \"\";\n\u00a0 \u00a0 if (!groups.empty()) {\n\u00a0 \u00a0 \u00a0 \u00a0 ans += std::to_string(groups[0]);\n\u00a0 \u00a0 \u00a0 \u00a0 if (groups.size() &gt; 1) {\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 ans += \",\";\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 for (int i = 1; i + 1 &lt; groups.size(); ++ i) {\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 ans += pad(groups[i], 3) + \",\";\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 } \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 ans += pad(groups.back(), 3);\n\u00a0 \u00a0 \u00a0 \u00a0 }\n\u00a0 \u00a0 } else {\n\u00a0 \u00a0 \u00a0 \u00a0 ans += \"0\";\n\u00a0 \u00a0 }\n\u00a0 \u00a0 ans += \".\";\n\u00a0 \u00a0 ans += pad(cents, 2);\n\u00a0 \u00a0 return ans;\n}<\/code><\/pre>\n<p>A fun\u00e7\u00e3o C++ acima declara uma fun\u00e7\u00e3o <a href=\"https:\/\/helloacm.com\/how-to-define-lambda-functions-in-c11\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">lambda<\/a> local usando a sintaxe funcional. Em seguida, agrupamos os d\u00edgitos em tr\u00eas e os colocamos no vetor. Em seguida, preenchemos cada grupo, incluindo a parte do centavo.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Fonte de grava\u00e7\u00e3o:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/helloacm.com\" class=\"external external_icon\">helloacm.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Fun\u00e7\u00e3o de formato de n\u00famero de moeda C++<\/p>\n","protected":false},"author":1,"featured_media":224867,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[1069,722,722,1110,846,846,1069],"tags":[1170],"class_list":["post-233286","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-um-computador","category-desenvolvedor","category-n-a","category-tutoriais","tag-affiai-pt-pt"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/posts\/233286","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/comments?post=233286"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/posts\/233286\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/media\/224867"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/media?parent=233286"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/categories?post=233286"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/tags?post=233286"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}