Title: Numerical Data
1Chapter 3
2Topics
- Variables
- Numeric data types
- Assignment
- Expressions
3Numeric Data and Operations
- So far, our programs have used only String data
- It is common to use computers for numeric
calculations - We can write literal numbers into our programs -
just write the number - We need a way to store numeric data - variables
4Variables
- In mathematical expressions, we often use x and y
to represent unknown values and to make a
placeholder for many different values - y x2 5
- A variable is used in a similar way in a program
- A variables has a Java identifier for a name.
5Variables
- In the last chapter, we declared variables whose
location stored the address of an object - Now we need to learn to declare variables to
store numeric data. - A declaration sets aside memory locations to
store data values. - These memory locations are called variables, and
x and y are the names we associate with the
memory locations. - As before, we need to say what kind of data the
variable represents.
6Variables
- A variable has three properties
- A memory location to store the value.
- The type of data stored in the memory location.
- The name used to refer to the memory location.
7Variable Declarations
- The syntax for declaring variables is
- ltdata typegt ltvariablesgt
- where ltvariablesgt is a sequence of identifiers
separated by commas. - Every variable we use in a program must be
declared.
8Numeric Types
- There are six numeric data types in Java
- We nee to be able to use two basic kinds of
numbers. - We have several types for each kind of number to
allow for different ranges of values. - Integers have discrete values (whole numbers).
- byte
- short
- int
- long
- Real numbers are needed for values that have
fractional parts. - float
- double
9Assignment
- First we need to declare a variable.
- int a
- We assign a value to a variable by using an
assignment statement. - a 5
- At the time a variable is declared, it can also
be initialized. - int count 10, height 34
- Do not confuse mathematical equality and
assignment. The following is not valid Java code - 4 5 x
10Varaibles for Objects and Numbers
- The only difference between a variable for
numbers and a variable for objects is the
contents in the memory locations. - For numbers, a variable contains the numeric
value itself. - For objects, a variable contains an address where
the object is stored.
11Memory diagram for numeric data
- For numeric data, the actual value is stored in
the memory location associated with the variable
12Object Variables
- For objects, the location (memory address) for
the object is stored in the memory location
associated with the variable
13Comparison
14Variables
- We use the new command to create an object.
- Objects are called reference data types, because
the contents are addresses that refer to memory
locations where the objects are actually stored. - Numerical data are called primitive data types.
- We don't need to use new with primitive types.
- You do have to give the primitive variable a
value.
15Assignment
16Arithmetic Expressions
Assume x10, y7, z2.5
Operation Operator Expression Result
Addition x y 17
Subtraction - y - z 4.5
Multiplication x y 70
Division / y / x 0.7
Modulo (remainder) x y 3
17Division and Modulo
- Division works differently for integer and
floating point types - for floating point types you get a floating point
result (what your calculator would give you) - for integers, you get an integer result
- integer division and modulo together are what you
first learned when you learned division in grade
school - 27 divided by 6 is 4 with a remainder of 3
- so 27 / 6 gives a result of 4
- and 27 6 gives a result of 3
18Evaluation order
- In an expression with more than one binary
operator, we need rules to tell us what order to
do them in - What is 5 x 16 / y 5 ?
- Precedence rules tell us which of two different
operations should get done first - What is 5 4 3 ?
- Associativity rules tell us which order
operations of the same type get done in - What is 16 / 2 / 2 ?
19Precedence rules
- for arithmetic operators and parentheses
Order Group Operator Rule
first Subexpression () innermost first left to right
Unary operation , - single operand
multiplicative operators , /, left to right
last additive operators , - left to right
20Evaluation of Expressions
- Subexpression evaluation
- x 3 y
21Mixed-mode Arithmetic
- What happens when the operands in your expression
have different types? - x 3.45 / 2
- The hardware supports only single-type operations
- The value of a variable has to be stored in the
appropriate format. - Type conversions are used to convert mixed-type
expressions to single type expressions
22Type Conversions
- Widening conversions happen automatically
- promote a value from one type into another which
can represent a larger range of values - converting an int to a double
- Narrowing conversions have to be programmed
explicitly - information will be lost
- converting a double to an int
- cast operator is the name of the type of the
result enclosed in parentheses - (int)2.34
- fractional part will be truncated
23Rules for arithmetic promotion
- Unary Operators
- byte and short operands are converted to int
- Binary Operators
- If either operand has type double, the other will
be converted to a double - Otherwise, if either operand has type float, the
other will be converted to a float - Otherwise, if either operand has type long, the
other will be converted to a long - Otherwise, both operands are converted to int
will be converted to an int
24Constants
- If we want a variable to remain fixed, we use a
constant. - A constant is declared in a manner similar to a
variable, but with the additional reserved word
final. - final double PI 3.14159
- final int MONTHS_IN_YEAR 12
25Literal Constants
- If a literal constant contains a decimal point,
it is of type double by default. - To designate a literal constant of type float,
append a letter f or F to the number - 2 PI 345.79F
26Scientific Notation
- Numbers in scientific notation, such as
- Number x 10exponent
- are expressed in Java using the syntax
- ltnumbergt E ltexponentgt
- 12.40e209
- 29.009E-102
27Getting Numerical Input Values
- Wrapper classes are used to perform necessary
type conversions, such as converting a String
object to a numerical value.
28Getting Numerical Input Values
- radiusStr
- JOptionPane.showInputDialog(null,
- "Enter radius")
- radius Double.parseDouble(radiusStr)
29The Math Class
- The Math class in the java.lang package contains
class methods for commonly used mathematical
functions. - Some methods available in the Math class
- sqrt, abs, round
- sin, cos, asin,
- Math has the constant Math.PI in it