How to calculate an $n$ digit decimal approximation of a fraction?

Say I have a number $x \in \mathbb{Q}$ which possibly cannot be writen exactly in decimal form, but at least $x \notin \mathbb{Z}$ ($x$ is not an integer).

How do I calculate the first $n$ digits of this number $x$, for a given $n$? Also, how do I know if it has a finite or infinite amount of (nonzero) digits in decimal form?

For example, if $x = \frac{1000}{1001}$, how do I calculate the first $n = 10$ digits of this number?

I know this question sounds really basic, but since it is basically always done by means of a calculator or other computing device, I've never really done it before.

• Early school long division, or am I misunderstanding your question? Incidentally, this reminds me of Isaac Asimov's short story The feeling of power. – Dave L. Renfro Sep 28 '16 at 20:56
• Unfortunately , long division is out of fashion in many schools these days. A pity... – Robert Israel Sep 28 '16 at 20:59

A simple algorithm is the following :

Take integer part $\rightarrow$ multiply the numerator of the remainder by $10$ (in base $10$) $\rightarrow$ divide by the denominator $\rightarrow$ repeat

Each integer part obtained is one digit.

Once you decide you have enough digits, use common sense to place the dot.

Example :

For $\frac{1000}{1001}$

The integer part is $0$ so the first digit is $0$

The remainder is $\frac{1000}{1001}$

We multiply the numerator by $10$ : $1000\times10=10000$

We divide by the denominator $1001$ and take the integer part : $9$

So the second digit is $9$.

The numerator of the remainder is $10000-9\times1001=991$

Multiply it by $10$ and get $9910$

Divide by $1001$, take the integer part : $9$, which is our third digit...

etc.

So the first three digits are $0.99$

I let you compute the other ones !

(It is basically long division, but it was so badly taught to me I didn't even understand I could just work that way without drawings or fluff, and it seems much easier now, especially for mental maths.)

• Yes, what you are describing is a way of presenting the classical long division algorithm. However at the point where you say "divide by the denominator" you are suppressing an important detail: at that point you know the result of that division is less than 10 but finding the quotient digit has to be done by trial and error. – Rob Arthan Sep 28 '16 at 21:26

To find if it has a terminating decimal, so has a finite number of nonzero digits, check if the denominator factors as $2^a5^b$. If the denominator has any prime factors other than $2$ or $5$, the decimal will repeat infinitely. The termination will come at $\max (a,b)$ because the denominator will divide evenly into $10^{\max(a,b)}$