tag:forum.selfhtml.org,2005:/self zahl formatiert ausgeben 100.000,12 – SELFHTML-Forum 2020-06-30T13:37:04Z https://forum.selfhtml.org/self/2020/jun/29/zahl-formatiert-ausgeben-100-000-12/1772712?srt=yes#m1772712 Cem 2020-06-29T10:24:09Z 2020-06-29T10:24:09Z zahl formatiert ausgeben 100.000,12 <p>Hallo, ich habe hier im Forum schon einiges gefunden, unter anderem auch die Informationen zu meiner Rechnung hier.</p> <p>Jetzt versuche ich das Ergebnis formatiert wieder auszugeben.</p> <pre><code class="block">function calculate() { let summe_1 = getInputAsFloat(document.form1.input1) * getInputAsFloat(document.form1.input2); document.getElementById("output_1").textContent = summe_1.toString().replace(/\./ , ","); } </code></pre> <p>Jetzt kommt die Zahl je nach Art entweder als 100000 oder als 100000,54 als Ausgabe, je nachdem ob ich eine Komma Zahl eingegeben habe oder nicht.</p> <p>Ich möchte aber die Ausgabe so formatiert haben 100.000,54, wie bei PHP da gibt es ja das number_format</p> https://forum.selfhtml.org/self/2020/jun/29/zahl-formatiert-ausgeben-100-000-12/1772713?srt=yes#m1772713 Der Martin 2020-06-29T10:28:23Z 2020-06-29T10:28:23Z zahl formatiert ausgeben 100.000,12 <p>Mahlzeit,</p> <blockquote> <p>ich habe hier im Forum schon einiges gefunden, unter anderem auch die Informationen zu meiner Rechnung hier.</p> </blockquote> <p>dann hast du bestimmt auch schon <a href="https://forum.selfhtml.org/self/2020/jun/28/zahlenformat-in-java-rechnung/1772659#m1772659" rel="noopener noreferrer">diesen Thread</a> gefunden, der genau dein Problem beackert.</p> <blockquote> <p>Ich möchte aber die Ausgabe so formatiert haben<br> 100.000,54, wie bei PHP da gibt es ja das number_format</p> </blockquote> <p>Bedenke, dass deine Besucher vielleicht ganz andere Zahlendarstellungen gewöhnt sind.</p> <p>Live long and <s>pros</s> healthy,<br>  Martin</p> <div class="signature">-- <br> Home is where my beer is. </div> https://forum.selfhtml.org/self/2020/jun/29/zahl-formatiert-ausgeben-100-000-12/1772714?srt=yes#m1772714 Cem 2020-06-29T10:42:25Z 2020-06-29T10:42:25Z zahl formatiert ausgeben 100.000,12 <p>Nein, aber die Antwort währe theoretisch</p> <pre><code class="block"> var number = 3500; console.log(number.toLocaleString()); // Displays "3,500" if in U.S. English locale </code></pre> <p>aber wie bekomme ich die beiden Formeln vereint</p> <pre><code class="block"> document.getElementById("output_1").textContent = summe_1.toString().replace(/\./ , ","); </code></pre> <p>Ich denke das bleibt:</p> <pre><code class="block">document.getElementById("output_1").textContent = </code></pre> <p>und ich muss irgendwie</p> <pre><code class="block"> console.log(number.toLocaleString()); // Displays "3,500" if in U.S. English locale </code></pre> <p>übergeben</p> https://forum.selfhtml.org/self/2020/jun/29/zahl-formatiert-ausgeben-100-000-12/1772717?srt=yes#m1772717 Rolf B 2020-06-29T11:54:32Z 2020-06-29T11:54:32Z zahl formatiert ausgeben 100.000,12 <p>Hallo Cem,</p> <p>eine feste Anzahl von Nachkommastellen bekommst Du über den options-Parameter von toLocaleString.</p> <p>Also so:</p> <pre><code class="block language-js">elem<span class="token punctuation">.</span>textContent <span class="token operator">=</span> zahl<span class="token punctuation">.</span><span class="token function">toLocaleString</span><span class="token punctuation">(</span> <span class="token keyword">undefined</span><span class="token punctuation">,</span> <span class="token punctuation">{</span> <span class="token literal-property property">minimumFractionDigits</span><span class="token operator">:</span> <span class="token number">2</span><span class="token punctuation">,</span> <span class="token literal-property property">maximumFractionDigits</span><span class="token operator">:</span> <span class="token number">2</span><span class="token punctuation">,</span> <span class="token literal-property property">useGrouping</span><span class="token operator">:</span> <span class="token boolean">true</span><span class="token punctuation">}</span> <span class="token punctuation">)</span><span class="token punctuation">;</span> </code></pre> <p>Das gibt dann genau 2 Nachkommastellen, und Tausendergruppierung gemäß Locale.</p> <p><code>undefined</code> als 1. Parameter bedeutet: Verwende das Locale des Anwenders.</p> <p>Alternativ kannst Du Dir ein Formatierungsobjekt erzeugen, wenn Du viel zu formatieren hast:</p> <pre><code class="block language-js"><span class="token keyword">const</span> formatter <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">Intl<span class="token punctuation">.</span>NumberFormat</span><span class="token punctuation">(</span> <span class="token keyword">undefined</span><span class="token punctuation">,</span> <span class="token punctuation">{</span> <span class="token literal-property property">minimumFractionDigits</span><span class="token operator">:</span> <span class="token number">2</span><span class="token punctuation">,</span> <span class="token literal-property property">maximumFractionDigits</span><span class="token operator">:</span> <span class="token number">2</span><span class="token punctuation">,</span> <span class="token literal-property property">useGrouping</span><span class="token operator">:</span> <span class="token boolean">true</span><span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span> elem<span class="token punctuation">.</span>textContent <span class="token operator">=</span> formatter<span class="token punctuation">.</span><span class="token function">format</span><span class="token punctuation">(</span>zahl<span class="token punctuation">)</span><span class="token punctuation">;</span> </code></pre> <p><em>Rolf</em></p> <div class="signature">-- <br> sumpsi - posui - obstruxi </div> https://forum.selfhtml.org/self/2020/jun/29/zahl-formatiert-ausgeben-100-000-12/1772730?srt=yes#m1772730 Cem 2020-06-29T14:34:01Z 2020-06-29T14:34:01Z zahl formatiert ausgeben 100.000,12 <p>Super, genial, wie bekomme ich den noch das € Zeichen dazu?</p> <pre><code class="block">elem.textContent = zahl.toLocaleString( undefined, { minimumFractionDigits: 2, maximumFractionDigits: 2, useGrouping: true} ); </code></pre> https://forum.selfhtml.org/self/2020/jun/29/zahl-formatiert-ausgeben-100-000-12/1772731?srt=yes#m1772731 Rolf B 2020-06-29T14:57:38Z 2020-06-29T14:57:38Z zahl formatiert ausgeben 100.000,12 <p>Hallo Cem,</p> <p>achso, Ausgabe als Währung. Sorry.</p> <p>Da nimmst Du als Option-Objekt { style: "currency", currency: "EUR" }. Grouping und FractionDigits brauchst Du in dem Fall nicht, das setzt er dann automatisch auf 2 Nachkommastellen.</p> <p><a href="https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Global_Objects/Number/toLocaleString" rel="nofollow noopener noreferrer">Guckst Du hier</a></p> <p>Die Wikipedia sagt: Laut DIN 5008 sollten hier die Tausendergruppen mit Punkten und NICHT mit Leerstellen gegliedert werden. Vermutlich, damit nicht irgendwer unbemerkt eine Ziffer dazwischendruckt. JavaScript macht also alles richtig :)</p> <p><em>Rolf</em></p> <div class="signature">-- <br> sumpsi - posui - obstruxi </div> https://forum.selfhtml.org/self/2020/jun/29/zahl-formatiert-ausgeben-100-000-12/1772764?srt=yes#m1772764 Cem 2020-06-30T13:37:04Z 2020-06-30T13:37:04Z Danke <p>Da sag ich einfach mal Danke</p>