Discussion Forums

Re: Representing a double as a Fast scaled decimal
Dimitry London / Morgan Stanley <>
9 Oct 2008 11:04PM ET

Daniel, thanks very much, this approach looks very promising. I will run performance tests in the next few days.

Dimitry

> Dimity, There are two ways to look at this problem. If you know ahead of
> time that you are going to always use a fixed number of decimal
> precision (again, let's say your business rules require a precision of 4
> decimal points), and you have already either rounded your float to those
> 4 points of precision, or truncation is okay for your application, then
> the conversion is simple:
>
> float x = 123.4500 int64_t mantissa = (int64_t)(x * 10000); int32_t
> exponent = 4;
>
>
> The more complicated case is when you are trying to generically convert
> a floating point number to a FAST scaled decimal with
> a.) not losing any precision, and
> b.) optimizing the exponent as to keep the mantissa as small as
> possible.
>
> For this, take a look at modf() in the standard C library. It breaks a
> float into the whole and fractional parts. You can then cast or convert
> the float whole and fractional parts to integers. Next, you would remove
> any unnecessary precision from the fractional integer by using a mod and
> divide by 10 while there are trailing zeros left.
>
> Finally, to create the FAST scaled decimal mantissa, you must determine
> the FAST exponent by inspecting the size of the fractional integer, and
> then adjust the whole integer by that factor, and add back the
> fractional part.
>
> I am working on C/C++ an example for you...
>
> /Daniel


Representing a double as a Fast scaled decimal
Dimitry London / Morgan Stanley   8 Oct 2008 12:50PM ET
Re: Representing a double as a Fast scaled decimal
Anders Furuhed / Pantor Engineering   8 Oct 2008 2:13PM ET
Re: Representing a double as a Fast scaled decimal
Dimitry London / Morgan Stanley   8 Oct 2008 3:06PM ET
Re: Representing a double as a Fast scaled decimal
Rolf Andersson / Pantor Engineering   8 Oct 2008 3:22PM ET
Re: Representing a double as a Fast scaled decimal
Dimitry London / Morgan Stanley   8 Oct 2008 3:47PM ET
Re: Representing a double as a Fast scaled decimal
Rolf Andersson / Pantor Engineering   8 Oct 2008 3:56PM ET
Re: Representing a double as a Fast scaled decimal
Dimitry London / Morgan Stanley   8 Oct 2008 4:04PM ET
Re: Representing a double as a Fast scaled decimal
Daniel May / SpryWare, LLC   8 Oct 2008 5:27PM ET
Re: Representing a double as a Fast scaled decimal
Dimitry London / Morgan Stanley   8 Oct 2008 9:07PM ET
Re: Representing a double as a Fast scaled decimal
Walter Mascarenhas / GeoCAD   8 Oct 2008 9:58PM ET
Re: Representing a double as a Fast scaled decimal
Daniel May / SpryWare, LLC   9 Oct 2008 9:47AM ET
Re: Representing a double as a Fast scaled decimal
Daniel May / SpryWare, LLC   9 Oct 2008 10:48AM ET
Re: Representing a double as a Fast scaled decimal
Walter Mascarenhas / GeoCAD   9 Oct 2008 11:45AM ET
Re: Representing a double as a Fast scaled decimal
Dimitry London / Morgan Stanley   9 Oct 2008 11:16PM ET
Re: Representing a double as a Fast scaled decimal
Walter Mascarenhas / GeoCAD   10 Oct 2008 7:30AM ET
Re: Representing a double as a Fast scaled decimal
Dimitry London / Morgan Stanley   9 Oct 2008 11:04PM ET