Допустим, есть некоторая переменная \dx (в нашем случае равная 0.8), которую мы хотим разделить на 5:

\begin{tikzpicture}
  \def\x{0.8};
  \node at (0,0) {\x/5};
\end{tikzpicture}

Однако результатом будет лишь вывод записи самой операции

0.8/5

Для выполнения операции понадобится команда

\pgfmathsetmacro{<имя_макроса>}{<код макроса>}

Она создает макрос, который выполняет операцию. Вот как это выглядит на практике:

\begin{tikzpicture}
  \def\x{0.8};
  \pgfmathsetmacro{\res}{\x/5}
  \node at (0,0) {\res};
\end{tikzpicture}

Результат:

0.15999

Но вот ведь незадача: 0.8/5 = 0.16. Можно долго рассказывать про особенности деления двоичных чисел, но нужно не это -- нужно, чтобы было 0.16. Как округлить результат до 2-го знака после запятой?

Сделать это можно с помощью команды \num пакета siunitx:

\num[round-mode=places,round-precision=2]{\res}

Пример полностью:

\documentclass{article}
\usepackage{siunitx}
\usepackage{tikz}
\begin{document}

\begin{tikzpicture}
  \def\x{0.8};
  \pgfmathsetmacro{\res}{\x/5}
  \node at (0,0) {\num[round-mode=places,round-precision=2]{\res}};
\end{tikzpicture}

\end{document}

И -- да, теперь:

0.16


Комментарии

comments powered by Disqus