65.9K
CodeProject 正在变化。 阅读更多。
Home

CDFValue - 分数/十进制转换类

starIconemptyStarIconemptyStarIconemptyStarIconemptyStarIcon

1.00/5 (1投票)

2002年11月20日

1分钟阅读

viewsIcon

63714

downloadIcon

707

一个用于操作和转换十进制和分数数据的类。

Sample Image - DFValue_ss.jpg

作为一名改造专业的从业者和热衷于木工的爱好者,我意识到,在网上搜索木工软件的许多小时后,需要专门针对该领域的应用程序。因此,我得出结论,我要么等待其他人开发它们,支付他们的价格并希望它们具有我需要的功能,要么自己开发它们并将我需要的功能集成到我的应用程序中。

我确定首先要做的是开发一个类来处理十进制和分数数据,并能够在这两者之间进行转换。因此,我创建了CDFValue类。该类封装了此功能,并提供了一套丰富的方法,使用户能够处理十进制、分数以及两者的混合数据类型,并能够操作和转换这些数据。

在下面的示例中,局部变量gbl_precision用于定义所需的精度。在我的应用程序中,我将此变量用作全局变量,并允许用户将其设置为 1/16",1/32" 或 1/64"。在示例中,我将其设置为 1/64"。如果未指定单位,则假定单位为英尺。

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

如您从示例中看到,CDFValue类易于使用且非常通用。值可以是分数形式

80", 5', 5'6", 5'6-1/2"

可以是十进制形式

.15, 1, 1.5

或者两者兼有

12.5", 1.5'

就这样了!

您可以自由使用此类,我唯一的要求是,如果您喜欢此类并使用它,请给予应有的赞誉。例如,像对待你一样对待我。

© . All rights reserved.