# How to use \pgfmathfloattomacro to store computation values in a variable and reuse the variable

I use \pgfmath for computation of floating point numbers a lot. But I want to store the result of each computation and store it in a variable and then use back to perform another floating point arithmetic.

The small signal parameters are given as,\\
$g_{m}=\dfrac{2I_{D}}{V_{OV}}$\; and\; $r_{o}=\dfrac{\lambda}{I_{D}}$\\
\pgfkeys{/pgf/fpu,/pgf/fpu/output format=sci}
$g_{m1,2}= \pgfmathparse{(2*0.75*pow(10,-3))/(0.25)} \pgfmathfloatparsenumber{\pgfmathresult} \pgfmathprintnumber[precision=2]{\pgfmathresult}$;

$r_{o3,4}= \pgfmathparse{(1)/(0.2*1.5*pow(10,-3))} \pgfmathfloatparsenumber{\pgfmathresult} \pgfmathfloattomacro{\pgfmathresult}{\F}{\Mr3}{\Er3} \Mr3 \times \pgfutilensuremath{10^{\Er3}}$;


and now I want to perform the following operation

$A=g_{m1,2}\cdot r_{o3,4}$


Also, I need a macro to pass in different values and get results onto different variables.

• Why don't you just use a different macro so you aren't overwriting \pgfmathresult? I don't really understand the question, I guess. Can you make your fragment into an MWE? – cfr Mar 13 '17 at 3:18

Store the intermediate results by \let\XX{\pgfmathresult} and then retrieve the results later whenever needed. Note: There are few thinks that are to be kept in mind
1. The variable \XX should not contain any number.
2. Remove the local scope while defining. I.e., in the above code, I tried to use \let\XX within (which actually act as a local scope).