CDFValue - Fractional/Decimal conversion class





1.00/5 (1 vote)
Nov 20, 2002
1 min read

63114

707
A class used to manipulate and convert decimal and fractional data.
As a remodeling professional and an avid woodworking enthusiast I realized, after many hours of searching the net for woodworking software that there was a need for applications that specialize in this area. Therefore I came to the conclusion that I would either have to wait for someone else to develop them, pay their price and hope they had the functionality that I needed or develop them myself and integrate the functionality I needed into my apps.
I determined that the first place to start was to develop a class to handle
decimal and fractional data with the ability to convert between the two.
Therefore I created the CDFValue
class. This class encapsulates
this functionality and provides a rich set of methods providing the user with
the ability to handle decimal, fractional and a mixture of both data types and
to be able to manipulate and convert this data.
In the example below the local variable gbl_precision
is used to define the required precision. In my applications I use this variable as a global and allow the user to set it to either 1/16", 1/32" or 1/64". In the example I set it at 1/64". If units not given they are assumed to be in feet.
int gbl_precision = 64; CDFValue DFVal1; CDFValue DFVal2; CDFValue DFRes; CString strVal1 = "1'6\""; DFVal1.SetDFValue(strVal1); DFVal2.SetDFValue(1.5); DFRes = DFVal1 + DFVal2; //DFRes = 3' DFRes = DFVal1 - DFVal2; //DFRes = 0 DFRes = DFVal1 * DFVal2; //DFRes = 2'3" DFRes = DFVal1 / DFVal2; //DFRes = 1 DFVal1 == DFVal2; //TRUE
As you can see from the example the CDFValue
class is easy to use
and very versatile. Values may be in fractional
80", 5', 5'6", 5'6-1/2"
in decimal
.15, 1, 1.5
or a mixture of the two
12.5", 1.5'
Thats all there is to it!
You may use this class freely, the only thing I ask is that if you like this class and use it you give credit where credit is due. i.e. Treat me as I would treat you.