C++ float/double in financial applications such as that in stock exchanges and/or brokerage house

(Last Updated On: May 4, 2011)
Learn the Secret

Get  our 2 Free Books

Get these now which land directly to their inbox.
Invalid email address

Use of C++ float/double in financial applications such as that in stock exchanges and/or brokerage houses.

Is the rounding gap resulting from using float in C++ considered immaterial/acceptable? Is it a normal practice? What about using a customized fixed-point class to do such math? What are your opinions? Thanks a lot in advance

Yes the rounding gap using float can and will have a impact, and for any financial application I would personally suggest NOT using float/double for money storage/calculations. You will regret it in the end.

Depending on the number of decimal points you wish to use, would depend on your solution.
Lets say you are only interested in 2 decimal points, in this case a long (or int) would work.
ie the number $100.10 would be stored as 10010.
Giving a:
Int range: -21,474,836.48 to 21,474,836.47
Long range: –92,233,720,368,547,758.08 to 92,233,720,368,547,758.07

If you want more than 2 decimal points then make sure you use atleast long.
If the number of decimal points would not leave enough for your upper limit, then separate the whole and decimal into 2 int (or long).

No matter which of the above I use, I always design 1 Money class that handles all the maths, string to display etc. This allows much easier to change the structure if you find you choose incorrectly at the beginning

It depends on what type of finance you are doing. But be ready to familiarize yourself with terms like tick size, tick value, tick size denominator and various numerators.



In addition, there are techniques like http://en.wikipedia.org/wiki/Guard_digit



NOTE I now post my TRADING ALERTS into my personal FACEBOOK ACCOUNT and TWITTER. Don't worry as I don't post stupid cat videos or what I eat!
This entry was posted in Quant Development and tagged , , , , , , , on by .

About caustic

Hi i there My name is Bryan Downing. I am part of a company called QuantLabs.Net This is specifically a company with a high profile blog about technology, trading, financial, investment, quant, etc. It posts things on how to do job interviews with large companies like Morgan Stanley, Bloomberg, Citibank, and IBM. It also posts different unique tips and tricks on Java, C++, or C programming. It posts about different techniques in learning about Matlab and building models or strategies. There is a lot here if you are into venturing into the financial world like quant or technical analysis. It also discusses the future generation of trading and programming Specialties: C++, Java, C#, Matlab, quant, models, strategies, technical analysis, linux, windows P.S. I have been known to be the worst typist. Do not be offended by it as I like to bang stuff out and put priorty of what I do over typing. Maybe one day I can get a full time copy editor to help out. Do note I prefer videos as they are much easier to produce so check out my many video at youtube.com/quantlabs