{"id":234191,"date":"2023-02-09T12:17:00","date_gmt":"2023-02-09T09:17:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=234191"},"modified":"2023-02-09T12:18:13","modified_gmt":"2023-02-09T09:18:13","slug":"fonction-de-format-de-nombre-de-devises-c","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/fr\/fonction-de-format-de-nombre-de-devises-c\/","title":{"rendered":"Fonction de format de nombre de devises C++"},"content":{"rendered":"<blockquote>\n<p>Penny pour vos pens\u00e9es<\/p>\n<p>\u00c9tant donn\u00e9 un entier positif n repr\u00e9sentant le montant de centimes dont vous disposez, renvoyez le montant format\u00e9 en devise. Par exemple, \u00e9tant donn\u00e9 n = 123456, renvoyez &quot;1 234,56&quot;.<\/p>\n<p>Exemple 1<br \/>\nEntr\u00e9e<br \/>\nn = 132<br \/>\nSortie<br \/>\n&quot;1.32&quot;<\/p>\n<p>Exemple 2<br \/>\nEntr\u00e9e<br \/>\nn = 2<br \/>\nSortie<br \/>\n&quot;0.02&quot;<\/p>\n<p>Exemple 3<br \/>\nEntr\u00e9e<br \/>\nn = 100000000<br \/>\nSortie<br \/>\n&quot;1 000 000,00&quot;<\/p>\n<\/blockquote>\n<h3>Formater un num\u00e9ro de devise \u00e0 l&rsquo;aide de C++<\/h3>\n<p>Bien que cette t\u00e2che puisse sembler simple avec la fonction <a href=\"https:\/\/wordpress.mediadoma.com\/fr\/remplacer-le-champ-de-recherche-integre-de-wordpress-par-google-customize-search\/\" title=\"int\u00e9gr\u00e9e\">int\u00e9gr\u00e9e<\/a> telle que printf ou le format String (en Python), impl\u00e9menter ce formatage de nombre\/devise ne semble pas une t\u00e2che triviale. Nous aurions d&rsquo;abord besoin d&rsquo;obtenir la partie penny (fraction) en calculant les deux derniers chiffres (le reste par 100). Ensuite, nous devons regrouper les <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\">autres chiffres<\/a> en trois.<\/p>\n<p>Nous avons besoin d&rsquo;une fonction de remplissage de cha\u00eene pour ajouter les z\u00e9ros non significatifs pour les groupes du milieu et \u00e9galement le penny (jusqu&rsquo;\u00e0 2 chiffres tels que 0,01). Le groupe le plus significatif ne doit pas ajouter <a href=\"https:\/\/helloacm.com\/how-to-compute-the-number-complement-for-integers\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">de z\u00e9ros non significatifs.<\/a> Les nombres sont s\u00e9par\u00e9s par une virgule.<\/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>La fonction C++ ci-dessus d\u00e9clare une fonction <a href=\"https:\/\/helloacm.com\/how-to-define-lambda-functions-in-c11\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">lambda<\/a> locale en utilisant la syntaxe fonctionnelle. Ensuite, nous regroupons les chiffres en trois et les mettons dans le vecteur. Ensuite, nous rembourrons chaque groupe, y compris la partie penny.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Source d&rsquo;enregistrement:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/helloacm.com\" class=\"external external_icon\">helloacm.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Fonction de format de nombre de devises 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":[1064,717,717,1110,841,841,1064],"tags":[1167],"class_list":["post-234191","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-un-ordinateur","category-developpeur","category-n-a","category-tutoriels","tag-affiai-fr"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/posts\/234191","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/comments?post=234191"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/posts\/234191\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/media\/224867"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/media?parent=234191"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/categories?post=234191"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/tags?post=234191"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}