===== new answer ====
Thought experiment:
Lets suppose we are converting $x$ to decimals and we have gotten to the $k$th position and so for we have $M= a_0.a_1a_2...a_{k-1}$ and we want to figure what value to put down for $a_k$.
Question: what is $x - M$?
Case 1: If $x - M < 0$ or $x < M$ we have f###ed up and we'll never get back on track. Every decimal we write down will be non-negative and our final result will be too big.
Case 2: If $x - M = 0$ we have no choice. We can't add anything more. All the remaining $a_j$ will have to be $0$s.
Case 3: If $x - M > 10^{-k+ 1} = 10*10^{-k}$. Well, again we're effed up. All the remaining decimals can be at most $9$ and $9*10^{-k} + 9*10^{-k-1} + .... \le 10*10^{-k} = 10^{-k+1}$. (Note: equality can hold as a limit.)
Case 4: If $x-M = 10^{-k+1}$ we have no choice. All the remaining decimals can be at most $9$ and $9*10^{-k} + 9*10^{-k-1} + .... \le 10*10^{-k} = 10^{-k+1}$ and we need then to add to $10^{-k+1}$. That's only possible if we use all $9$s from here on out.
The remaining options leaves us with $0 < x-M < 10*10^{-k}$. That means there is an integer $b: 0\le b <10$ so that $b*10^{-k} \le x-M < (b+1)*10^{-k}$. What value do we choose for $a_k$.
Case 5: $x-M = b*10^{-k}$ exactly.
Option 1: $a_k> b$. That's out. That would put us in Case 1) when we try to figure out $a_{k+1}$.
Option 2: $a_k = b$. That's good. And that puts us in Case 2) when we try to figure out $a_{k+1}$.
Option 3: $a_k = b-1$. That's... acceptable. But that will put us in Case 4) when we try to figure out $a_{k+1}$.
Option 4: $a_k < b-1$. That's out. That would put us in Case 3) when we try to figure out $a_{k+1}$.
Case 6: $b*10^{-k} < x-M < (b+1)*10^{-k}$.
Option 1: $a_k > b$ is still out as it will put us in Case 1.
Option 2: $a_k = b$ is good. That will put at Case 5) or 6) when we try to figure ot $a_{k+1}$.
Option 3: $a_k \le b-1$. No longer acceptable. That will put us in Case 3) when we try to figure out $a_{k+1}$.
....
So Our Conclusion:
In determining decimals we never have any choice unless we come to a Case 5: in which case we have a choice to terminate and end with an infinite number of zeros, or to drop by $1$ and end with an infinite number of $9$. Otherwise we never have any choice and we have an infinite non-terminating decimal.
It's easy to see that $\frac 13$ never yields a case 5: Read my old answer for an explanation.
==== old answer ===
Consider these rules for writing a decimal from a value $x$ (assuming we had some way of knowing exactly how big $x$ was):
There is a unique integer $a_0$ so that $a_0 \le x < a_0+1$. We'll take that for granted. We actually have to prove it but... let's assume it for now.
If $x = a_0$ we are done. If not we start with $n$ and we have to express $x_1 = x - a_0; 0 < x_1 < 1$ as a decimal.
As $0 < x_1 < 1$, if we divide $[0, 1)$ into ten intervals $[0, \frac 1{10}), [\frac 1{10}, \frac 2{10})$ ..... $[\frac 9{10}, 1)$ and $x_1$ can only lie in one of these. Or to put it in other words there is a unique $a_1\in \{0,1,2,....,9\}$ so that $\frac {a_1}{10} \le x_1 < \frac {a_1+1}{10}$. We write down that as $a_0.a_1$ which means $a_0 +\frac {a_1}{10}$ and that's the start of our decimal.
If $x_1 = \frac {a_1}{10}$ we are done. But if $\frac {a_1}{10} < x_1 < \frac {a_1}{10}$ we let $x_2 = x_1 - \frac {a_1}{10}$. That means $0 < x_1 < \frac 1{10}$. We do the same thing we did above; we divide the segment into ten pieces and find $a_2$ so that $\frac {a_2}{100} \le x_2 < \frac {a_2+1}{100}$.
And we do this forever.
We can show by induction that for $x = \frac 13$ this will never end and that each $a_i$ is distinctly determined to be $3$.
Base case: $0 < \frac 13< 1$ so $n = 0$. And $\frac 3{10} < \frac 13 < \frac 4{10} \iff \frac 9{10}< 1 < \frac {12}{10}$ which it is so $a_1 = 3$ and $x_1 = \frac 13 - \frac 3{10} = \frac {10}{30} - \frac 9{20} = \frac 1{30}$.
Induction case assume $a_k = 3$ and $x_k = \frac 1{3*10^k}$. Then we wish to show $a_{k+1}= 3$ and $x_{k+1} = \frac 1{3*10^{k+1}}$.
Well, that's done the exact same way.
$\frac 3{10^{k+1}} < \frac 1{3*10^{k}} < \frac 4{10^{k+1}} \iff \frac 9{10^{k+1}} < \frac {10}{3*10^{k+1}} < \frac {12}{10^{k+1}}$ which is does. So $a_{k+1} = 3$.
So $x_{k+1} = \frac 1{3*10^{k}}-\frac 3{10^{k+1}} = \frac {10}{3*10^{k+1}} - \frac 9{3*10^{k+1}} = \frac 1{3*10^{k+1}}$.
So that's it. By following those rules making decimals. $0.33333....$ is the only decimal that can be made from $\frac 13$.
........
But wait a minute! By those rules, $1 = 1$ is only decimal that can be made from $1$ and $0.99999999.....$ can never be made. But we know it can. What gives?
Well, those were rules for writing decimals; not for reading decimals. For reading decimals we can read $0.99999.......$ as $\sum_{k=1}^\infty \frac 9{10^k} = \lim\limits_{n\to \infty}\sum_{k=1}^n \frac 9{10^k}=\lim\limits_{n\to \infty} (1-\frac 1{10^{n+1}}) = 1-\lim\limits_{n\to \infty}\frac 1{10^{n+1}} = 1$.
So why can't there be another decimal that can be read to be $\frac 13$?
Well,
Claim: The only values of decimals that have two readings: $a_0.a_1a_2a_3......$ and $b_0.b_1b_2b_3......$ are where there is some point $k$ where $a_i = b_i$ for all $i < k$. $b_k = a_k -1$ and $a_j = 0; b_j = 9$ for all $j > k$.
In other words. Terminating decimals that end with an infinite number of zeros can be written as a decimal that ends with an infinite number of nines.
Pf: Let $k$ be the first term where $a_k \ne b_k$. Without loss of generality lets assume $b_k < a_k$. $0.0000......00b_{k+1}b_{k+2}..... \le 0.00000......0099999.... = \frac 1{10^k}$. And $0.00.....00a_{k+1}a_{k+2} ....... \ge 0$. Now $a_0.a_1.....a_{k-1} = b_0.b_1.....b_{k-1}$.
So $a_0.a_1.....a_{k-1} + a_k*10^{-k} + 0.00.....00a_{k+1}a_{k+2} ....... = b_0.b_1.....b_{k-1} + b_k^{-k} + 0.0000......00b_{k+1}b_{k+2}..... $ so
$a_k - b_k =10^k( 0.0000......00b_{k+1}b_{k+2}..... - 0.00.....00a_{k+1}a_{k+2} .......) \le 1$.
But $a_k> b_k$ and $a_k$ and $b_k$ are integers so that $a_k - b_k \ge 1$. So $a_k - b_k = 1$ and $0.00.....00a_{k+1}a_{k+2} ....... = 0$ and $0.0000......00b_{k+1}b_{k+2}..... = 1$.
But if any $a_j >0$ for $j > k$ then $0.00.....00a_{k+1}a_{k+2} .......> 0$. so thats not possible. And if any $b_j < 9$ for $j > k$ then $0.0000......00b_{k+1}b_{k+2}..... \le 0.00000......0099999....- (9-b_j)10^{-j} = \frac 1{10^k}-(9-b_j)10^{-j} < \frac 1{10^k}$ which means $a_k - b_k =10^k( 0.0000......00b_{k+1}b_{k+2}..... - 0.00.....00a_{k+1}a_{k+2} .......) < 1$ which is impossible.
So $b_k = a_k -1$ and $a_j = 0$ for all $j > k$ and $b_j = 9$ for all $j >k$.
......
That's that. Terminating decimals are the only decimals with two representations. And $\frac 13$ is not one of them.