## CS 1401 Homework #4

Date Assigned: Tuesday, February 8, 2005

Due Date: Thursday, February 10, 2005, before the beginning of your lecture section.

Goal: the goal of this assignment is to learn how to deal with numbers in Java.

Assignments:

1. What will be the result of the following expressions:

(a) 2/1/4

```Answer:

Java computations are left to right, so we first compute 2/1=2, then
2/4=0. The result is 0.

```
(b) 2.0/1.0/4.0

```Answer:

First we compute 2.0/1.0=2.0, then 2.0/4.0=0.5.

```
(c) a++ (if a was originally 2)

```Answer: 3

```
(d) --a (if a was originally 2)

```Answer: 1

```
(e) 2%3%4

```Answer:

First, we compute 2%3=2, then 2%4=2. The result is 2.

```
(f) -2.0%-0.9*-4.0

```Answer:

First, we compute -2.0%-0.9=-0.2, then -0.2%-4.0=-0.2. The result is -0.2.

```
2. Let a be a variable of type int. Use type casting to assign a's value to the following variables:

(a) longA of type long

```Answer:

longA = (long)a;
```
(b) doubleA of type double

```Answer:

doubleA = (double)a;
```
(c) stringA of type string

```Answer:

stringA = "" + a;

Comment: The book does not explicitly call this transformation
type casting, so if you answered that type casting is not possible in
case (c), it is also a correct answer.
```
Explain in which of these three cases we can use type conversion instead of type casting.
```Answer: type conversion is possible in the first two cases but not for
conversion to a string.

```
If type conversion is possible, what is the advantage of type casting?
```Answer: types casting make type transformation more explicit,
thus clearer to readers of the code and less error-prone.
```