|Syntactic Confectionery Delight|
Calculating base difference of numbersby Anonymous Monk
|on May 30, 2008 at 19:23 UTC||Need Help??|
Anonymous Monk has asked for the
wisdom of the Perl Monks concerning the following question:
I'm looking at the difference between currency exchange rate updates.
Take for example the price change from 1.5553 to 1.5552 In trading terms I can see this is a difference of 1 point since I have a pre-conceived interpretation of the numbers and how they move.
Sometimes my platform gets sent updates that drop trailing 0's after a decimal point.
e.g. '100.20' is shown as '100.2', likewise '100.00' is shown as '100'.
So how does one work out the point movement from 0.9984 -> 0.998 or 100.25 -> 100.3?
Other than converting the number to a string, calculating the number of decimal places (as x) in both rates and then multiplying the rate by 10^x (where x is the higher count of decimal places between two rates), minus rate 2 from rate 1 and then divide this resulting value by 10^(x-1)......is there an easier way...or more specifically a better performing way (mathematical)?
Thanks for any input.