Click here to Skip to main content
Click here to Skip to main content

CDFValue - Fractional/Decimal conversion class

, 22 Nov 2002
Rate this:
Please Sign up or sign in to vote.
A class used to manipulate and convert decimal and fractional data.
<!-- Download Links --> <!-- Article image -->

Sample Image - DFValue_ss.jpg

<!-- Add the rest of your HTML here -->

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.

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here

Share

About the Author

Old Timer
Web Developer
United States United States
No Biography provided

Comments and Discussions

 
GeneralA little work.. PinmemberCanopenR18-Dec-08 11:37 
GeneralNew Interface Pinmemberreichj23-Sep-06 4:46 
GeneralOr PinmemberRyan S Roberts22-Nov-02 1:59 
GeneralRe: Or PinmemberOld Timer22-Nov-02 10:36 
GeneralMissing links... PinmemberMarc Clifton20-Nov-02 2:35 
GeneralRe: Missing links... PinsitebuilderUwe Keim20-Nov-02 2:47 
GeneralRe: Missing links... PinmemberOld Timer20-Nov-02 10:32 
GeneralYes, much better PinmemberMarc Clifton22-Nov-02 9:31 
GeneralAaah ... PinmemberAnonymous20-Nov-02 2:33 
GeneralRe: Aaah ... PinmemberMarc Clifton20-Nov-02 2:36 
GeneralRe: Aaah ... PinmemberDrew Stainton21-Nov-02 4:39 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

| Advertise | Privacy | Terms of Use | Mobile
Web02 | 2.8.141223.1 | Last Updated 23 Nov 2002
Article Copyright 2002 by Old Timer
Everything else Copyright © CodeProject, 1999-2014
Layout: fixed | fluid