Listings
- Listing 1 . Question 1.
- Listing 2 . Question 4.
- Listing 3 . Question 5.
- Listing 4 . Question 6.
- Listing 5 . Question 7.
- Listing 6 . Question 8.
- Listing 7 . Question 9.
- Listing 8 . Question 10.
- Listing 9 . Question 11.
- Listing 10 . Question 12.
- Listing 11 . Question 13.
- Listing 12 . Question 14.
- Listing 13 . Question 15.
- Listing 14 . Question 16.
- Listing 15 . Question 17.
- Listing 16 . Question 18.
- Listing 17 . Answer 1.
Miscellaneous
This section contains a variety of miscellaneous information.
- Module name: Ap0010: Self-assessment, Primitive types
- File: Ap0010.htm
- Originally published: December 17, 2001
- Published at cnx.org: 12/01/12
Financial : Although the Connexions site makes it possible for you to download aPDF file for this module at no charge, and also makes it possible for you to purchase a pre-printed version of the PDF file, youshould be aware that some of the HTML elements in this module may not translate well into PDF.
I also want you to know that, I receive no financial compensation from the Connexions website even if you purchase the PDF version ofthe module.
In the past, unknown individuals have copied my modules from cnx.org, converted them to Kindle books, and placed them for sale onAmazon.com showing me as the author. I neither receive compensation for those sales nor do I know who does receive compensation. If youpurchase such a book, please be aware that it is a copy of a module that is freely available on cnx.org and that it was made andpublished without my prior knowledge.
Affiliation : I am a professor of Computer Information Technology at Austin Community College in Austin, TX.
Answers
Answer 10 .
D. 0.3333333333333333
Explanation 10
Divide floating type by integer type
This program divides the literal floating value of 1.0 by the literal integer value of 3 (no decimal point is specified in the integer literal value) .
Automatic conversion from narrow to wider type
To begin with, whenever division is performed between a floating type and an integer type, the integer type is automatically converted (sometimes called promoted) to a floating type and floating arithmetic is performed.
What is the actual floating type, float or double?
The real question here is, what is the type of the literal shown by 1.0 (with a decimal point separating the 1 and the 0) . Is it a double or a float ?
Type double is the default
By default, a literal floating value is treated as a double .
The result is type double
Consequently, this program divides a double type by an integer type, producing a result of type double . This is somewhat evident in the output, which shows about 17 digits plus a decimal point in the result. (Recall that the maximum value for a float shown earlier had only about eight digits plus thedecimal point and the exponent.)
How can you create literals of type float?
What if you don't want your literal floating value to be treated as a double , but would prefer that it be treated as a float instead.
You can usually force this to be the case by adding a suffix of either F or f to the end of the literal value (as in 1.0F) . If you were to modify this program to cause it to divide 1.0F by 3, the output would be 0.33333334 withonly nine digits in the result.