[Curious] Integer division => fraction

Stephen Pair stephen at pairhome.net
Thu Jun 12 14:11:08 UTC 2003


Andreas Raab wrote:

>Hi Guys,
>
>Just had an interesting discussion with Dean (over on e-Lang) about integer
>division semantics. He pointed out (and I agree) that most people tend to
>find it it confusing that "3/4" results in a fraction rather than coercing
>to Float by default.
>
>My questions: What do you think about this issue? Are you personally
>surprised if you get a fraction back? Has it bitten you in unexpected
>places? Have you actually ever had the need for coercing to fractions
>instead of floats? Can you think of "typical" applications that would be
>harmed by coercing to floats?
>

I think there are many applications that could be harmed by the loss of 
precision.  If you need a float and are willing to deal with the loss of 
precision, it's better to be explicit about that (by sending #asFloat) 
than it is to implicitly lose precision at arbitrary places in a 
computation. 

I also don't think that most people find it confusing to get a fraction 
(at least not anyone familiar with object oriented programming and 
mathematics). What I think might actually be causing confusion is trying 
to think in terms of fractions...not the fact that the result is 
internally represented as a fraction.

One thing that might alleviate some of this confusion is to have a 
preference that would cause fractions to be displayed as floats (in the 
inspectors for example)...I actually find myself sending #asFloat to 
fractions from time to time just to see a fraction in a floating point 
representation...its hard to digest big fractions like: "( 
34123412341234124 / 14312431343 )"...it's much easier to think about 
this fraction as: 2384179.98476013.  This is especially true when you're 
looking at multiple fractions and trying to guage their relative 
magnitudes when their reductions have different denominators.

Unfortunately, there might be some unsuspecting and casual users of 
#printString that might get bitten if the preference were enabled.  But, 
it couldn't hurt to try it...it would be interesting to see if the 
confusion is alleviated by simply changing the presentation of the 
fraction in some key places.

- Stephen





More information about the Squeak-dev mailing list