<< Chapter < Page Chapter >> Page >

Listings

Miscellaneous

This section contains a variety of miscellaneous information.

Housekeeping material
  • Module name: Ap0010: Self-assessment, Primitive types
  • File: Ap0010.htm
  • Originally published: December 17, 2001
  • Published at cnx.org: 12/01/12
Disclaimers:

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.

Get Jobilize Job Search Mobile App in your pocket Now!

Get it on Google Play Download on the App Store Now




Source:  OpenStax, Object-oriented programming (oop) with java. OpenStax CNX. Jun 29, 2016 Download for free at https://legacy.cnx.org/content/col11441/1.201
Google Play and the Google Play logo are trademarks of Google Inc.

Notification Switch

Would you like to follow the 'Object-oriented programming (oop) with java' conversation and receive update notifications?

Ask