<< 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.
E. 7.0
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.
-end-
Notification Switch
Would you like to follow the 'Object-oriented programming (oop) with java' conversation and receive update notifications?