TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

In a Tikz Figure, I'm doing some computation and want to print results as label of nodes. The problem is that I only need the integer part of the number to print.

I tried with round() function. It round the values correctly but they are printed with .0

   \foreach \i in {1,2,3,4,5,6} {
      \pgfmathparse{round(\i*100/3) }
       \draw (\i,0) node {\theIntINeed};
 % Results: 33.0 67.0 100.0 133.0 167.0 200.0

Thank you in advance.

share|improve this question
up vote 19 down vote accepted

\pgfmathparse always saves its result with a decimal part. You can either use \pgfmathprintnumber{\pgfmathresult} in the node text to output the number, which will remove the .0 for integers, or do the calculation using \pgfmathtruncatemacro\mymacro{round(\i*100/3)}, which will save the result of the calculation without the decimal part, and then use \mymacro in the node text.

share|improve this answer

You could also use the int function, which returns the integer part of the value, i.e.

share|improve this answer

Simply use \pgfmathtruncatemacro\theIntINeed instead of \pgfmathresult.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.