Beefy Boxes and Bandwidth Generously Provided by pair Networks
Keep It Simple, Stupid

Re: Math::SnapTo

by mojotoad (Monsignor)
on Dec 26, 2002 at 21:12 UTC ( [id://222415]=note: print w/replies, xml ) Need Help??

in reply to Math::SnapTo

Ah. My favorite here is the snap_units() function. There was a time when I was playing around with rounding fractions of stock shares -- to the nearest 1/8 or 1/16 value -- before the exchanges I was focused upon switched to arbitrary decimal representations of stock shares.

In the CB, tye suggested the following change in snap_units() to avoid potential rounding errors:


my $factor = 1/$units;
my $factor = int( 1/$units + 0.5 );

The drawback is that for fractional cases, $units must be 1/N, where N is an integer. I'm not super clear on the potential rounding errors; nor am I clear on the potential utility of arbitrary $units. Perhaps certain people can elucidate for our edification.


P.S. For some prior discussion of this stuff, check out Fix floats like you do in your head.

Replies are listed 'Best First'.
Re: Re: Math::SnapTo
by tachyon (Chancellor) on Dec 27, 2002 at 07:35 UTC

    As it happens Math::Round offers the nearest(UNITS, NUM) function that does exactly this. As the snap_basic() function is legacy dross and significant figures are handled by Math::SigFigs I have decided to delete this module as it does not offer anything not already available. This is a pity as I really liked the name. See Fix floats like you do in your head for more discussion and rationale.




Log In?

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://222415]
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others perusing the Monastery: (4)
As of 2024-07-21 14:03 GMT
Find Nodes?
    Voting Booth?

    No recent polls found

    erzuuli‥ 🛈The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.