2

How could a function a bit like basiceval be written to give a real number result as opposed to an integer, making the third calculation here more accurate?

\documentclass[american, a4paper]{report}

\def\basiceval#1{\the\numexpr#1\relax}

\begin{document}

\def\variableA{30}
\def\variableB{10}
\def\variableC{3}

\begin{itemize}
\item \basiceval{360/\variableB}
\item \basiceval{\variableA/\variableB}
\item \basiceval{\variableB/\variableC}
\end{itemize}

\end{document}
Mico
  • 506,678
d3pd
  • 1,718

3 Answers3

0

If using LuaLaTeX instead of pdfLaTeX is an option for you, you could define the macro as follows:

\def\basiceval#1{\directlua{tex.sprint(#1)}}

Here's the result of the modified MWE:

enter image description here

% !TEX TS-program = lualatex
\documentclass[american, a4paper]{report}

\def\basiceval#1{\directlua{tex.sprint(#1)}}

\def\variableA{30}
\def\variableB{10}
\def\variableC{3}

\begin{document}

\begin{itemize}
\item \basiceval{360/\variableB}
\item \basiceval{\variableA/\variableB}
\item \basiceval{\variableB/\variableC}
\end{itemize}

\end{document}
Mico
  • 506,678
0
\documentclass[american, a4paper]{report}

\usepackage{fp}
\def\basiceval#1{\the\numexpr#1\relax}

\begin{document}

\def\variableA{30}
\def\variableB{10}
\def\variableC{3}

\begin{itemize}
\item \basiceval{360/\variableB}
\item \basiceval{\variableA/\variableB}
\item \basiceval{\variableB/\variableC}
\end{itemize}

\FPupn{va}{30}
\FPupn{vb}{10}
\FPupn{vc}{3}

\FPupn{varesult}{360 vb swap / clip}
\FPupn{vbresult}{va vb swap / clip}
\FPupn{vcresult}{vb vc swap / 8 round}

\begin{itemize}
\item \varesult
\item \vbresult
\item \vcresult
\end{itemize}


\end{document}
0
\documentclass{article}
\usepackage{fp}
\newcommand\basiceval[1]{\basicevalhelp#1\relax}
\def\basicevalhelp#1/#2\relax{\FPdiv\result{#1}{#2}\result}
\begin{document}
\def\variableA{30}
\def\variableB{10}
\def\variableC{3}

\begin{itemize}
\item \basiceval{360/\variableB}
\item \basiceval{\variableA/\variableB}
\item \basiceval{\variableB/\variableC}
\end{itemize}
\end{document}

enter image description here