- The original allowance was 860 per year. Find the correct weekly
allowance to combine
with 160 Euro December bonus to produce exactly 860 Euros per year.
- Kim's brother Jim receives 80 Euros per month, but no December bonus.
Calculate the yearly total for Jim.
- Lois Lane and Clark Kent have 9 children.
The first child, Oney, receives 1.11 Euros per day, plus 11.11 bonus in
The second child, Tui, receives 2.22 Euros per day, plus 22.22 bonus in
The third child, Threep, receives 3.33 Euros per day, plus 33.33 bonus
This continues up to the ninth child, Ninny, who gets 9.99 per day plus
a 99.99 bonus.
Write ONE CALCULATION to calculate the total allowance for ALL the
assuming there are 365 days in one year.
For very large floating point
(decimal) values, we can use Scientific
For example, in Chemistry a Mole is defined as 6.02 x 1023
We could write this as: 6.02*10*10*10
.... 10 , repeating 23 tens.
But it's simpler to write: 6.02e23
The number 6.02 is called the mantissa.
The number 23 is the exponent.
We can also do arithmetic with these Scientific Notation numbers.
For example: 6.02e23 * 2
But Java will always normalize
the result, writing the mantissa
so that it has
just one number before the decimal point. Then the exponent
must also change.
So: 12.04e23 ==>
You might not need to use such big numbers, but you might be surprised
Java uses Scientific Notation to print a result.
For example : 1000.00 * 1000 *
1000 * 1000 ==> 1.0e12
It's easy to change the Scientific Notation back to a normal number.
The exponent 12 tells us
to move the decimal point 12 spots to the right.
That means you need to add some zeroes.
1.0e12 ==> 1 000 000 000 000
= 1 trillion
Scientific notation is the most general representation for a float
(floating point) value.
- Find out the largest possible float
value, and how to write it in Scientific Notation.
- Find out the smallest
possible positive float value, e.g. 0.00000001, but more zeroes,
and how to write it in scientific notation.
- Find an example of a float
calculation that produces a slightly incorrect value.
- Decide whether the following calculation produces an acceptable
Java float values only have 8
decimal place accuracy. So when something like
6/11 is stored, it can be stored as 0.54545454. There should
be lots more repetitions of 54,
but there is no space and the rest is truncated (chopped off). Or it might get rounded
which makes it closer to being correct, but still not 100% correct.
In fact, the actual value
produced by 6/11.0 is 0.54545456, which isn't even rounded off
correctly. Once the number
is stored in the memory, the storage error is permanent. In a long
the truncation errors will occur after each part of the calculation,
and may result in a noticeably incorrect answer. But if you are
rounding errors in one part of the calculation may balance out with
errors in another part, and produce a very accurate answer at the end.
- Which is largest : 2e3 , 3e2 , 32e1 , 123
- How do you write 10*100*1000*10000 in scientific notation?
- Why does the computer calculate 1/10.0 correctly,
but it calculates 1/3.0 incorrectly?
- Find the largest possible value that can be written as a float
in Scientific Notation.
- We can write a "d" after a Scientific Notation value, to force it to
use double storage.
println( 9e99d + 8e98d );
That allows us to write larger numbers. Find out the largest value
that can be
written as a Scientific Notation double value.
- In an ideal world, with perfect computers, we would expect all the
commands to print the same answer:
println(1/7f + 1/7f + 1/7f + 1/7f + 1/7f + 1/7f + 1/7f);
println(1/7d + 1/7d + 1/7d + 1/7d + 1/7d + 1/7d + 1/7d);
println(7 * (1/7) );
println(7d * (1d/7d) );
println(7d * (1f/7f) );
Run these commands and explain the different results.
- Which type of numbers do you think is best - integer, float or double?