       RE: Displaying Mixed Numbers

• To: mathgroup at smc.vnet.net
• Subject: [mg25148] RE: [mg25124] Displaying Mixed Numbers
• From: "David Park" <djmp at earthlink.net>
• Date: Sun, 10 Sep 2000 21:25:42 -0400 (EDT)
• Sender: owner-wri-mathgroup at wolfram.com

```Jim,

By golly, I hope your daughter is actually dipping her toes into
Mathematica!

The trouble with Print is that you can't actually work with the output. Here
is a small system that will actually allow your daughter to do some
arithmetic with mixed fractions.

Mix[x_] := mixform[Quotient[Numerator[x], Denominator[x]],
Mod[Numerator[x], Denominator[x]]/Denominator[x]]

Format[mixform[x_, y_]] :=
Which[
y == 0, x,
x == 0, y,
True, SequenceForm[x, y]]

MixEvaluate[x_] := x /. mixform -> Plus

Now let's do some arithmetic. It is a little difficult to duplicate nice
Mathematica formatted output, so I just approximate it.

Mix[5/2] + Mix[7/3]
Mix[MixEvaluate[%]]

2 1/3 + 2 1/2
4 5/6

Mix[5/2] + Mix[7/3] + Mix + Mix[3/4]
Mix[MixEvaluate[%]]

3/4 + 2 1/3 + 2 1/2 + 5
10 7/12

x1 = Mix[2 + 7/8];
x2 = Mix[3/5];
x3 = Mix[7/3];

(x1 + x2)/x3
% // MixEvaluate // Mix

(3/5 + 2 7/8)/(2 1/3)
1 137/280

David Park

> -----Original Message-----
> From: Jim Graber [mailto:jgraber at my-deja.com]
To: mathgroup at smc.vnet.net
>
> While working with my third grader, I discovered the need
> to make 5/3 display and print as 1 2/3 so she can check her
> homework.
>
> I couldn't find a way to do this easily, so I wrote the following which
> does the job.  Is there an easier or better way?
> Thanks.  Jim Graber
>
> Mix1[x_] := { Quotient[Numerator[x], Denominator[x]],
>     Mod[Numerator[x], Denominator[x]]/Denominator[x]}
>
> Mix[x_] := Print[Mix1[x][], Mix1[x][]];
>
>
> Sent via Deja.com http://www.deja.com/