## WeBWorK Problems

### issue in contextFraction.pl

by Carl Yao -
Number of replies: 2
Hello:

I'm writing to report an issue in contextFraction.pl. The following code changed the value of 3/2 to 1/2.

Carl Yao

Context("Fraction");
Context()->flags->set(showMixedNumbers=>1);

$a1 = Fraction(3,2);$test = Compute("$a1"); BEGIN_PGML [[$test]]

END_PGML
In reply to Carl Yao

by Alex Jordan -
Hi Carl,

That is expected behavior. You set the showMixedNumbers flag to 1, so "$a1" comes out as "1 1/2". However you haven't changed any flags to make the parser interpret mixed numbers as mixed numbers. The Compute call sees "1 1/2" and multiplies 1 by 1/2, giving you 1/2. If you want a space to count as addition, as with mixed numbers, instead of multiplication, then you need to set some other flag for that or use a different context than plain Fraction. See the contextFraction.pl documentation here: https://github.com/openwebwork/pg/blob/master/macros/contextFraction.pl Alex In reply to Carl Yao ### Re: issue in contextFraction.pl by Davide Cervone - When you do "$a1", because you are showing mixed numbers, you get "1 1/2" as the string passed to Compute(). But the space is implicit multiplication, so you compute effectively "1*1/2", which is 1. If you want to process mixed numbers (not just show them), you need to include the allowMixedNumbers=>1 flag as well.

It is not clear to me why you are doing the Compute() at all, since \$a1 is already a MathObject. There is no need to recompute it that I can think of.

OOPS! I see Alex already answered. Sorry for the noise.