0
$\begingroup$

I am working with a function that returns output in AccountingForm format. I would like to do math with that output, but Mathematica does not recognize it as numbers. Is there a way to convert a number in AccountingForm back into a real number?

x1 = 23.3;
x2 = AccountingForm[x1];
2*x2 (* does not compute *)

various things I have tried . . .

2*NumberForm[x2, 2] (* does not compute *)

2*N[x2, 2] (* does not compute *)

2*Apply[Real, x2] (* does not compute *)

2*ToExpression[x2] (* does not compute *)

Thanks

$\endgroup$
6
  • 1
    $\begingroup$ You can just do x2=x2[[1]] which gets rid of the AccountingForm head. $\endgroup$
    – N.J.Evans
    Feb 15, 2017 at 19:09
  • $\begingroup$ closely related: 7871 $\endgroup$
    – Kuba
    Feb 15, 2017 at 19:10
  • $\begingroup$ is that a good duplicate: After NumberForm I cannot apply a Sine function. Why?? $\endgroup$
    – Kuba
    Feb 15, 2017 at 19:12
  • $\begingroup$ @N.J.Evans That's a perfectly good answer. If you post it as such, I'll accept it. $\endgroup$ Feb 15, 2017 at 19:38
  • $\begingroup$ @Kuba It's a related issue but to my eye it is not the same question. $\endgroup$ Feb 15, 2017 at 20:10

1 Answer 1

2
$\begingroup$

You can extract the number from the AccountingForm head, as per PartsOfExpressions (which may address some shortcomings that I'm forgetting to mention), by extracting the first part using any alias for that operation:

x=AccountingForm[3.14];
x=x[[1]]

or x=First@x, or x=Part[x,1]

$\endgroup$

Not the answer you're looking for? Browse other questions tagged or ask your own question.