<< Chapter < Page Chapter >> Page >

Floating divide by zero

The program in Listing 4 attempts to divide the double value of -11 by the double value of zero.

No runtime error with floating divide by zero

In the case of floating types, an attempt to divide by zero does not produce a runtime error. Rather, it returns a value that the println method interprets and displays as either Infinity or -Infinity .

What is the actual value?

The actual value returned by the division operation in this program is the value of a static final variable in the Double class named NEGATIVE_INFINITY . (There is also a value for POSITIVE_INFINITY .)

Is this a better approach?

As you learned earlier, if you attempt to divide by zero with integer arithmetic, an exception will be thrown. Is this a better approach than throwing an exception?I will let you be the judge of that. The important thing is that you know what will happen in both cases and beprepared to deal with the consequences.

In either case, you could test the right operand before the divide to ensure that it isn't equal to zero, and then take appropriate action if it is zero.

Cannot use exception handling in this case

For floating divide by zero, you cannot handle the problem by using try-catch because an error or exception won't be thrown.However, you can test the result following the divide to see if it is equal to either of the infinity values mentioned above . Note, however, that you will need to test against the constant values shown above and not against the output produced by the println method.

And the correct answer to the question is...

C. -Infinity

Mixed-type arithmetic

What output is produced by the program shown in Listing 5 ?

  • A. Compiler Error
  • B. Runtime Error
  • C. 4.294967294E9
  • D. 4294967294
Listing 5 . Mixed-type arithmetic.
public class Mixed01{ public static void main(String args[]){ new Worker().doWork();}//end main() }//end class definitionclass Worker{ public void doWork(){//Integer.MAX_VALUE = 2147483647 int myIntVar = Integer.MAX_VALUE;System.out.println(2.0 * myIntVar); }//end doWork()}//end class definition

This program illustrates the use of arithmetic operators with operands of different types.

Declare and initialize an int

The method named doWork declares a local variable of type int named myIntVar and initializes it with the largest positive value that can be stored in type int .

Evaluate an arithmetic expression

An arithmetic expression involving myIntVar is evaluated and the result is passed as a parameter to the println method where it is displayed on the computer screen.

Multiply by a literal double value

The arithmetic expression uses the multiplication operator (*) to multiply the integer value stored in myIntVar by 2.0 (this literal operand is type double by default) .

Automatic conversion to wider type

When arithmetic is performed using operands of different types, the type of the operand of the narrower type is automatically converted to the type of the operand of the wider type, and the arithmetic is performed on the basis of the wider type.

(By narrower and wider, we mean the width of the range of values that can be accommodated by the type in question.)

Questions & Answers

what is biology
Hajah Reply
the study of living organisms and their interactions with one another and their environments
AI-Robot
what is biology
Victoria Reply
HOW CAN MAN ORGAN FUNCTION
Alfred Reply
the diagram of the digestive system
Assiatu Reply
allimentary cannel
Ogenrwot
How does twins formed
William Reply
They formed in two ways first when one sperm and one egg are splited by mitosis or two sperm and two eggs join together
Oluwatobi
what is genetics
Josephine Reply
Genetics is the study of heredity
Misack
how does twins formed?
Misack
What is manual
Hassan Reply
discuss biological phenomenon and provide pieces of evidence to show that it was responsible for the formation of eukaryotic organelles
Joseph Reply
what is biology
Yousuf Reply
the study of living organisms and their interactions with one another and their environment.
Wine
discuss the biological phenomenon and provide pieces of evidence to show that it was responsible for the formation of eukaryotic organelles in an essay form
Joseph Reply
what is the blood cells
Shaker Reply
list any five characteristics of the blood cells
Shaker
lack electricity and its more savely than electronic microscope because its naturally by using of light
Abdullahi Reply
advantage of electronic microscope is easily and clearly while disadvantage is dangerous because its electronic. advantage of light microscope is savely and naturally by sun while disadvantage is not easily,means its not sharp and not clear
Abdullahi
cell theory state that every organisms composed of one or more cell,cell is the basic unit of life
Abdullahi
is like gone fail us
DENG
cells is the basic structure and functions of all living things
Ramadan
What is classification
ISCONT Reply
is organisms that are similar into groups called tara
Yamosa
in what situation (s) would be the use of a scanning electron microscope be ideal and why?
Kenna Reply
A scanning electron microscope (SEM) is ideal for situations requiring high-resolution imaging of surfaces. It is commonly used in materials science, biology, and geology to examine the topography and composition of samples at a nanoscale level. SEM is particularly useful for studying fine details,
Hilary
cell is the building block of life.
Condoleezza Reply
Got questions? Join the online conversation and get instant answers!
Jobilize.com Reply

Get Jobilize Job Search Mobile App in your pocket Now!

Get it on Google Play Download on the App Store Now




Source:  OpenStax, Ap computer science a, clarification of the java subset. OpenStax CNX. Oct 03, 2015 Download for free at https://legacy.cnx.org/content/col11279/1.5
Google Play and the Google Play logo are trademarks of Google Inc.

Notification Switch

Would you like to follow the 'Ap computer science a, clarification of the java subset' conversation and receive update notifications?

Ask