Prozentrechnung

Prozentrechnung

Ich habe versucht, mit dem calcPaket ein Makro zu schreiben, das einen Prozentsatz basierend auf zwei Zahlen ausgibt. Beispiel: \printpercent{100}{200}sollte 50 % anzeigen, da 100 die Hälfte von 200 ist. Ich habe viele verschiedene Kombinationen ausprobiert, aber es scheint mir, als ob ich keine sinnvollen Ergebnisse ausdrucken kann. Unten sehen Sie nur eine der vielen Formeln, die ich ausprobiert habe:

\documentclass{article}
\usepackage{calc}
\newcounter{z}
\newcommand{\printpercent}[2]{%
    \setcounter{z}{#1 / #2 * 100}
    $#1/#2*100=\arabic{z}\%$
}%
\begin{document}
    \printpercent{1}{100}
    \printpercent{250}{200}
\end{document}

Das Ergebnis ist:

1/100*100 = 0%

250/200*100 = 100 %

  • Wie kann ich aus diesen Zahlen einen Prozentsatz berechnen?

Antwort1

Die Berechnung gilt nur für Ganzzahlen. Sie sollten #1zuerst mit 100 multiplizieren.

\documentclass{article}
\usepackage{calc}
\newcounter{z}
\newcommand{\printpercent}[2]{%
    \setcounter{z}{#1 * 100 / #2}
    $#1/#2*100=\arabic{z}\%$
}%
\begin{document}
    \printpercent{1}{100}
    \printpercent{250}{200}
\end{document}

Und es ist einfacher, eTeX zu verwenden:

\newcommand\printpercent[2]{\the\numexpr#1*100/#2\%}

Wenn Sie eine präzisere Lösung benötigen oder die Eingabe keine Ganzzahlen sind, können Sie hierfür die Pakete fp, fltpoint, pgfmathoder verwenden l3fp. Beispiel:

\documentclass{article}
\usepackage{fp}
\newcommand\printpercent[2]{\FPeval\result{round(#1*100/#2,1)}\result\%}
\begin{document}
    \printpercent{2.3}{100}
    \printpercent{176.5}{190.375}
\end{document}

Antwort2

Eine andere Möglichkeit ist die Verwendung pgfmathmit siunitx. Ich bin nicht sicher, ob die Genauigkeit immer stimmt, in diesem Fall ist es möglich, fpuoder zu verwenden fp.

aktualisieren: Für einen Benutzer, der mit arbeitet, tikzist es möglich, zu ersetzen SIdurch\pgfmathprintnumber

\documentclass{article} 

\input{pgfutil-common.tex}
\usepackage{pgfkeys,pgfmath}  
\usepackage{siunitx}

\newcommand{\printpercent}[3][2]{%  
    \pgfmathdivide{#2}{#3}% 
    \pgfmathmultiply{\pgfmathresult}{100}%
    \SI[round-mode=places,round-precision=#1]{\pgfmathresult}{\percent}
}%

\begin{document}    
     \printpercent[0]{1}{100}   
     \printpercent{200}{250}   
     \printpercent{2}{3}  
\end{document} 

Bildbeschreibung hier eingeben

verwandte Informationen