Here are 4 simple steps to convert a repeating decimal to a fraction.

**Step 1:** Check to see if the number has a repeating decimal. Stop if it doesn’t and do normal conversion.

**Step 2:** Split the decimal into 3 parts; i, x, r. Such that the decimal equals `i.x(r)*`.

**Step 3:** Create a fraction in the form `a/b`.

a = ((ixr as int) – (ix as int))

b = ((10^^{x.length})*(10^^{r.length} – 1))

**Step 4:** (optional) Reduce the fraction by dividing by the greatest common denominator.

**Example:**

4/3 = 1.333… which sets i = “1”, x = “”, r = “3”.

a = (13 – 1) = 12, b = ((10^^{0})*(10^^{1} – 1)) = 9

a/b = 12 / 9 = 4/3

Ratio.js does this for you when the `reduce` function is called.

Example using Ratio.js:

```
```Ratio.parse( "1/3" ).reduce().toString() === "1/3";
Ratio.parse( 4/3 ).reduce().toString() === "4/3";
Ratio.parse( 0.123451234512345 ).reduce().toString() === "4115/33333";
Ratio.parse( 0.987987989798979897 ).reduce().toString() === "978108109901/990000000000"; |

Ratio.parse( "1/3" ).reduce().toString() === "1/3";
Ratio.parse( 4/3 ).reduce().toString() === "4/3";
Ratio.parse( 0.123451234512345 ).reduce().toString() === "4115/33333";
Ratio.parse( 0.987987989798979897 ).reduce().toString() === "978108109901/990000000000";