The integers we have used so far don't allow decimal
values. C++ provides floating identifier values that would solve this
problem. To declare a variable that involves a decimal value, you can
use the float keyword. Here is an example:
using namespace System;
int main()
{
float Fraction = 12.35;
Console::WriteLine(Fraction);
Console::WriteLine();
return 0;
}
A float variable can hold a number that
ranges from 3.4 x 10-38 to 3.4 x 1038. Besides, or
instead of, float, you can use the Single data type to declare a
variable that holds a simple decimal value. The Single data type
is defined in the System namespace.
Practical
Learning: Using a Single-Precision Variables |
|
- To declare a single-precision variable, change the file as follows:
using namespace System;
int main()
{
long propertyNumber = 490724;
__wchar_t propertyType = 'S';
Byte stories = 2;
unsigned bedrooms = 5;
float bathrooms = 3.5;
unsigned yearBuilt = 1962;
Console::WriteLine("=//= Altair Realty =//=");
Console::WriteLine("-=- Properties Inventory -=-");
Console::Write("Property #: ");
Console::WriteLine(propertyNumber);
Console::Write("Property Type: ");
Console::WriteLine(propertyType);
Console::Write("Stories: ");
Console::WriteLine(stories);
Console::Write("Bedrooms: ");
Console::WriteLine(bedrooms);
Console::Write("Bathrooms: ");
Console::WriteLine(bathrooms);
Console::Write("Year Built: ");
Console::WriteLine(yearBuilt);
return 0;
}
|
- Execute the project to see the result:
=//= Altair Realty =//=
-=- Properties Inventory -=-
Property #: 490724
Property Type: S
Stories: 2
Bedrooms: 5
Bathrooms: 3.5
Year Built: 1962
Press any key to continue . . .
|
- Close the DOS window
Double-Precision Variables
|
|
One of the limitations of the float data type is
that it provides less precision than required sometimes (in fact, the
Microsoft C++ compiler, always
displays a warning when you use the float data type to declare a
variable). The alternative is to use the double keyword or the Double
data type to declare a variable that would hold decimal numbers. The Double
data type is defined in the System namespace.
A double-precision variable declared with double or
Double can hold a decimal or fractional number that ranges from 1.7 x 10-308
to 1.7 x 10308. It is used for numbers that and/or are very
large.
using namespace System;
int main()
{
System::Double Fraction = 12.35;
Console::WriteLine(Fraction);
return 0;
}
This would produce:
12.35
Press any key to continue
Practical
Learning: Using a Single-Precision Variables |
|
- To use a double-precision variable, change the file as follows:
using namespace System;
int main()
{
long propertyNumber = 490724;
__wchar_t propertyType = 'S';
Byte stories = 2;
unsigned bedrooms = 5;
float bathrooms = 3.5;
unsigned yearBuilt = 1962;
double marketValue = 652540;
Console::WriteLine("=//= Altair Realty =//=");
Console::WriteLine("-=- Properties Inventory -=-");
Console::Write("Property #: ");
Console::WriteLine(propertyNumber);
Console::Write("Property Type: ");
Console::WriteLine(propertyType);
Console::Write("Stories: ");
Console::WriteLine(stories);
Console::Write("Bedrooms: ");
Console::WriteLine(bedrooms);
Console::Write("Bathrooms: ");
Console::WriteLine(bathrooms);
Console::Write("Year Built: ");
Console::WriteLine(yearBuilt);
Console::Write("Market Value: ");
Console::WriteLine(marketValue);
return 0;
}
|
- Execute the project to see the result:
=//= Altair Realty =//=
-=- Properties Inventory -=-
Property #: 490724
Property Type: S
Stories: 2
Bedrooms: 5
Bathrooms: 3.5
Year Built: 1962
Market Value: 652540
Press any key to continue . . .
|
- Close the DOS window
Initializing a Double-Precision
Variable
|
|
You may have found out that when you declare and initialize
a float or Single variable, the compiler generates a warning. Consider the
following example:
using namespace System;
int main()
{
float Fraction = 12.35;
Console::WriteLine(Fraction);
Console::WriteLine();
return 0;
}
When compiled, you would get the following warning:
.\Exercise.cpp(5) : warning C4305: 'initializing' : truncation from 'double' to 'float'
Although the program would compile fine. By default, when
the compiler sees a value such as 12.35, for the sake of precision, it tends to
store it as a double value. If you really want the variable to be treated as a
float or Single, add the f or F to its right. Here is an example:
using namespace System;
int main()
{
float Fraction = 12.35f;
Console::WriteLine(Fraction);
Console::WriteLine();
return 0;
}
This time, the compiler will not generate a warning.
Remember that you can use f (lowercase) or F (uppercase).