How to Convert Fraction to Decimal: 3/8

  • Context: High School 
  • Thread starter Thread starter Poweranimals
  • Start date Start date
  • Tags Tags
    Fraction
Click For Summary

Discussion Overview

The discussion revolves around methods for converting the fraction 3/8 into its decimal form. Participants explore various approaches, including programming algorithms and traditional long division, while considering the limitations of computational precision.

Discussion Character

  • Exploratory
  • Technical explanation
  • Debate/contested
  • Mathematical reasoning

Main Points Raised

  • One participant proposes a pseudo program for converting fractions to decimals, detailing a step-by-step algorithm that involves manipulating whole numbers and arrays.
  • Another participant suggests that long division is the simplest method, emphasizing the ability to identify patterns in the decimal expansion.
  • Some participants express skepticism about using division, indicating it may be undesirable in certain contexts.
  • Concerns are raised regarding the limitations of computer approximations, particularly when dealing with repeating decimals and the precision of software like Windows and C/C++.
  • A participant mentions a previous experience creating an Excel spreadsheet that could generate decimal representations of fractions to a desired number of digits, hinting at a similar algorithm to the one proposed earlier.
  • Another participant shares that they tested the proposed algorithm in Matlab, suggesting modifications to handle trailing zeros effectively.

Areas of Agreement / Disagreement

There is no consensus on the best method for converting fractions to decimals, with multiple competing views on the effectiveness of programming algorithms versus traditional long division. Participants acknowledge the limitations of computational methods without reaching a definitive conclusion.

Contextual Notes

Participants note the potential for inaccuracies in decimal representation due to the limitations of computer precision, particularly in relation to the number of digits that can be accurately computed.

Poweranimals
Messages
68
Reaction score
0
What is the best way to convert a fraction into a decimal. IE: 3/8?
 
Mathematics news on Phys.org
Maybe you could devise a pseudo program.

Let a < b. To convert a/b to a decimal:

Line 1: Set the whole number m = 1.
Line 2: Set the array element n[m] = 9.
Line 3: Set the real number x = b*n[m] - a*10m.
Line 4: If x > 0, then decrement n[m] and go back to Line 3. Otherwise, set a = -x, b = b*10m, increment m, and go back to Line 2.

The decimal is 0.n[1]n[2]n[3]n[4]n[5]...

That is, the decimal is a "0." followed by the juxtaposition of the array elements of n[.] in ascending order.

OK, I think I got that pseudo program to make sense now.



Following the program for 3/8:

m = 1
n[1] = 9
x = 8*9 - 3*101 = 42
:
:
eventually, n[1] = 3
x = 8*3 - 3*101 = -6
a = 6
b = 8*101 = 80
m = 2
n[2] = 9
x = 80*9 - 6*102 = 120
:
:
eventually, n[2] = 7
x = 80*7 - 6*102 = -40
a = 40
b = 80*102 = 8000
m = 3
n[3] = 9
x = 8000*9 - 40*103 = 32000
:
:
eventually, n[3] = 5
x = 8000*5 - 40*103 = 0
a = 0
b = 8000*103 = 8E6
m = 4
n[4] = 9
x = 8E6*9 - 0*104 = 7.2E7
:
:
which obviously will yield a zero for every other digit found

This procedure has given:
n[1] = 3, n[2] = 7, n[3] = 5, n[m>3] = 0
in accordance with the calculator.
 
Last edited:
The easiest way is to just long divide until you start getting 0's or you satisfy the number of digits you need.

cookiemonster
 
cookiemonster said:
The easiest way is to just long divide until you start getting 0's or you satisfy the number of digits you need.

cookiemonster

I'm with cookiemonster on this one. You should be able to spot a pattern if you start repeating.
 
I was under the impression (though I wouldn't be surprised to be mistaken) that division would be an undesirable feature.
 
Yeah, I can see that. If division is not an option, your program may be a viable option.
 
ophecleide said:
Yeah, I can see that. If division is not an option, your program may be a viable option.

In many cases the computers approximation to the correct result may not be desirable. Consider what happens if the rational number results in a repeating pattern which is not fully developed within the precision of your software? You need some method of computing digits unconstrained by the computers word length. Windows generates about 15 decimal digits so any fraction which requires more digits then this cannot be precisely computed by windows. I once created an Excel spreadsheet which generated decimal representation of a fraction to however many digits you wanted. Unfortunately, as I sit typing this, I cannot recall the algorithm I used. May have been very similar to that presented by Turin.

BTW, I believe that an application of the Pigeon Hole principle revels that the magnitude of the denominator gives the maximum possible number of digits in the decimal representation. (That is number of digits in which the result must terminate or being repeating.
 
Integral said:
Windows generates about 15 decimal digits so any fraction which requires more digits then this cannot be precisely computed by windows.

It's not a Windows restriction, it's C/C++ restriction. If you want a variable to have more than 15 digits, it has to be an array (which would be incredibly hard on memory). Here is a table of C++ variable types.
http://myfiles.dyndns.org/datasheets/comp_variable_types.jpg
 
Last edited by a moderator:
Matlab liked my program. I put it in an m-file and ran it just for kicks. You can set the maximum m value to whatever you want. I think the program should be modified to truncate the excessive amount of traling zeros that one would incur for large numbers of decimal places (using my algorithm).
 

Similar threads

  • · Replies 8 ·
Replies
8
Views
3K
  • · Replies 6 ·
Replies
6
Views
399
  • · Replies 2 ·
Replies
2
Views
2K
  • · Replies 10 ·
Replies
10
Views
3K
  • · Replies 2 ·
Replies
2
Views
2K
  • · Replies 1 ·
Replies
1
Views
1K
  • · Replies 9 ·
Replies
9
Views
2K
  • · Replies 37 ·
2
Replies
37
Views
18K
  • · Replies 3 ·
Replies
3
Views
4K
  • · Replies 7 ·
Replies
7
Views
4K