# Bamboozling Arithmetic!

Your assumption that multiplying by 1cm is the same as multiplying by 1 is wrong.

What about multiplying by 1in or 1mm?

The function `\pgfmathresult`

returns a number, not a dimension. For implementation reasons, the number 1 is stored as a length, precisely 1pt.

Therefore `3*1`

is `3`

, but `3*1cm`

is `85.35823`

, because `1cm=28.45275pt`

(and then TeX’s rounding applies).

The easiest way to address this is to see what the difference between the two calculations yield for `\boxOffset`

:

```
\documentclass{article}
\usepackage{tikz}
\begin{document}
\newcommand{\boxWidth}{6cm}
\newcommand{\boxHeight}{1cm}
\pgfmathsetmacro{\boxOffset}{\boxWidth / 2cm}%
\verb|\boxOffset| 1: \boxOffset
\pgfmathsetmacro{\boxOffset}{\boxWidth / 2cm * 1cm}%
\verb|\boxOffset| 2: \boxOffset
\end{document}
```

In performing the division `6cm / 2cm`

, `tikz`

converts the quantities to a uniform unit of measure (`pt`

s). However, in this case with similar measurements in the division, it results in merely "striping" the measurement, yielding in `3`

. This is understandable. Multiplying this result by `1cm`

, the value is first converted to `pt`

s (there are 28.45274 `pt`

s in every `cm`

; see `\newlength{\templen} \setlength{\templen}{1cm} \the\templen`

), yielding the desired result (3 x 28.45274 = 85.35822), with some floating point error.

A similar argument would hold for your other calculations as lengths are converted to `pt`

s before performing the arithmetic.