4

Code

\documentclass{article}
\usepackage{expl3}
\usepackage{siunitx}
\setlength\parindent{0pt}
\begin{document}
\ExplSyntaxOn

\fp_new:N  \mynumber
\fp_set:Nn \mynumber{5}
\fp_div:Nn \mynumber{2}

\mynumber
\\
\num{\mynumber}
\ExplSyntaxOff
\end{document}

Prints:

+2.500000000e0
2.500 000 000

How can I make it print:

+2.500000000e0
2.5

?

David Carlisle
  • 757,742
user4035
  • 5,035
  • 6
  • 40
  • 57

1 Answers1

5

Use

  • \fp_eval:n or \fp_to_decimal:N (which are “identical”), or
  • \fp_to_scientific:N

to create a TeX output that can serve as a siunitx input:

\documentclass{article}
\usepackage{expl3}
\usepackage{siunitx}
\begin{document}
\ExplSyntaxOn

\fp_new:N  \mynumber
\fp_set:Nn \mynumber{5}
\fp_div:Nn \mynumber{2}

\fp_eval:n          \mynumber \par
\fp_to_decimal:N    \mynumber \par
\fp_to_scientific:N \mynumber \par

\num{\fp_to_decimal:N\mynumber}
\ExplSyntaxOff
\end{document}
Qrrbrbirlbel
  • 119,821
  • 1
    \fp_use:N and \fp_to_decimal:N are copies of each other and expect a single floating point variable. \fp_eval:n and \fp_to_decimal:n are copies of each other and accept any expression within braces. – Bruno Le Floch Jun 14 '13 at 06:47