<< Chapter < Page Chapter >> Page >

A double is wider than an int

Since the allowable value range of type double is greater than the allowable value range of type int , assignment of an int value to a double variable is allowed, with conversion from int to double occurring automatically.

A safe conversion

It is also significant to note that there is no loss in precision when converting from an int to a double .

An unsafe but allowable conversion

However, a loss of precision may occur when an int is assigned to a float , or when a long is assigned to a double .

What would a float produce ?

The value of 2.14748365E9 shown for selection D is what you would see for this program if you were to change the double variable to a float variable. (Contrast this with 2147483647 to see the loss of precision.)

Widening is no guarantee that precision will be preserved

The fact that a type conversion is a widening conversion does not guarantee that there will be no loss of precision in the conversion. It simplyguarantees that the conversion will be allowed by the compiler. In some cases, such as that shown above , an assignment compatible conversion can result in a loss of precision, so you always need to be aware of what you are doing.

Back to Question 2

Answer 1

E. 7.0

Explanation 1

Declare but don't initialize a double variable

The method named doAsg begins by declaring a double variable named myVar without initializing it.

Use the simple assignment operator

The simple assignment operator (=) is then used to assign the double value 3.0 to the variable. Following the execution of that statement, thevariable contains the value 3.0.

Use the arithmetic/assignment operator

The next statement uses the combined arithmetic/assignment operator (+=) to add the value 4.0 to the value of 3.0 previously assigned to the variable.The following two statements are functionally equivalent:

myVar += 4.0; myVar = myVar + 4.0;

Two statements are equivalent

This program uses the first statement listed above. If you were to replace the first statement with the second statement, the result would be thesame.

In this case, either statement would add the value 4.0 to the value of 3.0 that was previously assigned to the variable named myVar , producing the sum of 7.0. Then it would assign the sum of 7.0 back to the variable. Whenthe contents of the variable are then displayed, the result is that 7.0 appears on the computer screen.

No particular benefit

To the knowledge of this author, there is no particular benefit to using the combined arithmetic/assignment notation other than to reduce the amount oftyping required to produce the source code. However, if you ever plan to interview for a job as a Java programmer, you need to know how to use thecombined version.

Four other similar operators

Java support several combined operators. Some involve arithmetic and some involve other operations such as bit shifting. Five of the combined operatorsare shown below. These five all involve arithmetic.

  • +=
  • -=
  • *=
  • /=
  • %=

In all five cases, you can construct a functionally equivalent arithmetic and assignment statement in the same way that I constructed the functionallyequivalent statement for += above.

Back to Question 1

-end-

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