I am making a macro to help show kids how to estimate, say, 34.1% of 5.
I just can't get the calculations to output exact numbers with appropriate (minimal) decimal places. Instead, PGF is showing me that 40% of 5 is 1.99997
How do I fix that? And what about in the future when I may want to specify a maximum number of decimal places?
\documentclass{article}
\usepackage{tikz}
\usepackage{pgf}
\usepackage[margin=1.5cm]{geometry}
\title{Percents of Whole Numbers on a Number Line}
\date{}
\author{}
\setlength{\parindent}{0pt}
\newcommand{\percentA}[2]
{
\begin{tikzpicture}[xscale=18]
\foreach \x in {0,1,...,#1}
{
\node at (\x/#1,0.45) {\x}; % Whole numbers
\draw [very thick] (\x/#1,0)--(\x/#1,0.25); % Whole number tick marks
}
\draw[very thick] (0,0)--(1,0); % x axis
\foreach \x in {0,...,100} % Hundredths tick marks
\draw (\x/100,-0.1)--(\x/100,0);
\foreach \x in {0,1,2,...,10}
{
\draw[thick] (\x/10,-0.18)--(\x/10,0); % Tenths tick marks
\pgfmathsetmacro{\tenspercents}{int(\x*10)}
\node at (\x/10,-0.6) {\tenspercents \%};
\node at (\x/10,-1) {of #1};
\pgfmathsetmacro{\result}{\tenspercents/100*#1,}
\node at (\x/10,-1.4) {is \result};
}
\end{tikzpicture}
}
\begin{document}
\pagestyle{empty}
\maketitle
\percentA{5}
\end{document}
That code yields this:
Best Answer
As I said in response to your other question, you want to format the number to pretty-print it. In this case, I'm guessing the default format will be suitable, but you can obviously tune it according to your particular needs.
The default maths stuff is never going to be accurate. If you need accuracy, you can use floating point, for example. But I doubt that is really needed for grade 2 maths (assuming this is still for your second graders). Just printing the numbers to make them prettier is all that's really required.
EDIT
This part of my answer uses a corrected version of the alternative version of
\percentA
which you posted later. Unlike the first version, this only uses 1 argument and your example only gave 1 argument. Unfortunately, like the first version, it still demanded 2.Also note that both versions introduce spurious spaces. I corrected this above and have annotated the corrections for the alternative version below.
Also also note that you should not include a comma in the argument you expect
pgfmath
to parse as a number. This will create problems. For example, the number cannot be formatted correctly afterwards because it contains alien stuff. Again, I corrected that above and repeat the correction with an annotation below.The code below is designed to demonstrate a few of the various most-relevant-to-second-grader ways in which a number can be formatted by
pgfmath
. For other options, such as scientific formats, see TikkZ's manual where the options are extensively described.The following gives the output of
for a single definition of
\percentA{}
. That is, the numbers being printed are the same in every case. All that changes are relevant settings for/pgf/number format
, as given in the code which follows.Remember: the series of values held by
\result
are identical for each of the number lines, because the definition of\percentA{}
is held constant. What changes is the effect of the macro\pgfmathprintnumber{}
when fed the series of values in\result
as arguments.