Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

0.9999 = 1 is a consequence of the way we define rational and real numbers and limits. There are alternative definitions of numbers where this equality does not hold: Non Standard Analysis https://en.wikipedia.org/wiki/Nonstandard_analysis being the most famous one.

But for the sake of argument, let's just define numbers as sequences of digits with a mixed in period somewhere:

    MyNumber := {
      a = (a_1, a_2, ...) -- list of digits a_i = 0 .. 9; a_1 != 0.
      e -- exponent (integer)
      s -- sign (+/- 1)
    }
Each such sequence corresponds to the (classical) real number: s * \sum_i a_i * 10^{i + e}.

We can go on and define addition, subtraction, multiplication and division in the familiar way.

Problems arise only when we try to establish desireable properties, e.g.

(1/3) * 3 = 1

Does NOT hold here, since 0.9999... is a difference sequence than 1.000....

So yes, you can define these number systems, and you will have 0.999... != 1. But working with them will be pretty awkward, since a lot of familiar arithmetic breaks down.



1 = 0.9... is the consequence of purposely ambiguous and questionable notation. That's an old teachers' trick to make students talk and listen about mathematics.


This has nothing to do with notation. It's perfectly possible to define infinite sequences without using dots. In particular if they are constant. In the above case:

    a_i = 9 for i \in \IZ and i < 0
    a_i = 0 for i \in \IZ and i >= 0
Where \IZ are the integers.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: