Does 1.0 equal 0.9999999999999999...?

Does 1.0 equal 0.9999999999999999...?

http://robertjliguori.blogspot.com/2017/02/does-10-equal-09999999999999999.html

http://robertjliguori.blogspot.com/2017/02/does-10-equal-09999999999999999.html

No, they are not equal. What you are seeing is the inability of the floating‑point datatypes to distinguish such small differences.

Surely you should have written

`if (bigDecimal1.compareTo(bigDecimal2) != 0) ...`

rather than using <. It still shows not equal.

rather than using <. It still shows not equal.

Campbell Ritchie wrote:No, they are not equal.

Actually, 0.9999...... (infinitely repeating 9's)

But the program in the blog is not really showing that, because it isn't working with the number 0.9999...... (infinitely repeating 9's), but with an approximation with a finite number of 9's.

Fun! That's a lot of 9's in your blog post!

regardless of how many 9's there are in that post, that's not even CLOSE to an infinite number of 9's.

I haven't watched the video, but there are a couple of simple ways to show that 0.999... is exactly 1. The simplest relise on the fact that multiplication and division are inverse operations. If I divide by 2, then multiply by 2, i get back my original number. That is a fundamental property of multiplcation.

so, i can take a number...Say 1, and divide it by 3, then multiply that result by three, and i'm back to my original number.

1 / 3 = 0.33333....and on and on forever.

0.3333...and on and on forever * 3 is 0.9999....and on and on forever. And so it must equal 1.

I haven't watched the video, but there are a couple of simple ways to show that 0.999... is exactly 1. The simplest relise on the fact that multiplication and division are inverse operations. If I divide by 2, then multiply by 2, i get back my original number. That is a fundamental property of multiplcation.

so, i can take a number...Say 1, and divide it by 3, then multiply that result by three, and i'm back to my original number.

1 / 3 = 0.33333....and on and on forever.

0.3333...and on and on forever * 3 is 0.9999....and on and on forever. And so it must equal 1.

Yes, that is the problem. It should be possible to show that all finite sequences of multiple 9s after the decimal point do not equal 1.0.Jesper de Jong wrote:. . . (infinitely repeating 9's)

isequal to 1. . . . an approximation with a finite number of 9's. . . .

Campbell Ritchie wrote:Yes, that is the problem. It should be possible to show that all finite sequences of multiple 9s after the decimal point do not equal 1.0

it should be simpler than that.

1 - 0.<x nines> = 0.<(x-1) zeros>1

I think i have that right...

so if there is a non-zero difference between two number, they are not the same.

Yes, that looks right. If *x* is ∞ however, 0.0...01 degenerates to 0.0 and the two numbers become mutually equal.

i was just gonna mention that infinity problem. i dont want to take sides in this argument

There is no argument here Randall :)

There is a mathematical proof that 0.‾9 is equal to 1, so there is no side to pick. It's just a fact.

There is a mathematical proof that 0.‾9 is equal to 1, so there is no side to pick. It's just a fact.

Stephan van Hulst wrote:

There is a mathematical proof that 0.‾9 is equal to 1, so there is no side to pick. It's just a fact.

Yeah, there are lots of proofs out there -- including one using 9th grade algebra. So, most 14 and 15 year old children (in the U.S. that is, other countries may be younger) knows this fact...

Henry

Your mind is under my control .... your will is now mine .... read this tiny ad

Thread Boost - a very different sort of advertising

https://coderanch.com/t/674455/Thread-Boost-feature
This thread has been viewed 2491 times.

All times above are in ranch (not your local) time.

The current ranch time is

Apr 19, 2018 04:03:58.

The current ranch time is

Apr 19, 2018 04:03:58.