
calc
나는 패키지를 사용하여 두 숫자를 기준으로 백분율을 인쇄하는 매크로를 작성하려고 했습니다 . 예: \printpercent{100}{200}
100은 200의 중간 지점이므로 50%를 표시해야 합니다. 다양한 조합을 시도했지만 의미 있는 답변을 인쇄할 수 없는 것 같습니다. 제가 시도한 많은 공식 중 하나에 대해서는 아래를 참조하십시오.
\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}
다음과 같이 인쇄됩니다.
1/100*100 = 0%
250/200*100 = 100%
- 이 숫자에서 백분율을 어떻게 계산할 수 있나요?
답변1
계산은 정수에만 적용됩니다. #1
먼저 100을 곱해야 합니다 .
\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}
eTeX를 사용하는 것이 더 쉽습니다.
\newcommand\printpercent[2]{\the\numexpr#1*100/#2\%}
보다 정확한 솔루션이 필요하거나 입력이 정수 값이 아닌 경우 이를 위해 fp
, fltpoint
또는 패키지 pgfmath
를 사용할 수 있습니다. l3fp
예를 들어:
\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}
답변2
pgfmath
또 다른 가능성은 와 함께 사용하는 것입니다 siunitx
. 정밀도가 항상 정확한지는 잘 모르겠습니다. 이 경우에는 fpu
또는 를 사용할 수 있습니다 fp
.
업데이트: 함께 작업하는 사용자의 경우 다음 으로 tikz
교체가 가능합니다.SI
\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}