# how do i convert decimal to fraction in Java?

Thank you.
###### Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

Commented:
Algorithm :-

Suppose you have 1.5, the decimal part if 0.5
-> Multiply the numerator and denominator by 10, you get 10/15.
-> Find the greated common divisor - 5.
-> Divide both numerator and denominator by 5, you get 2/3.

Thoughts?
0
Java DeveloperCommented:
commons lang has a method for it

0

Experts Exchange Solution brought to you by

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Commented:
I have no idea about the function in Commons Lang.
This is what I thought

iint numerator = -1;
int denomianator = -1;
double d = 1.5;
// Find num of decimal digits
Double temp = new Double(d);
String s = temp.toString(d);
int numOfDecimals = s.length() - s.indexOf(".")-1;
denomianator = (int) Math.pow(10, numOfDecimals);
numerator = (int) (temp.intValue() * Math.pow(10, numOfDecimals) + (temp.floatValue()-temp.intValue())* Math.pow(10, numOfDecimals));
System.out.println(numerator+"/"+ denomianator);

This is a test code that changes the deicmal to fraction. All you need to do is reduce the fraction further
0
Author Commented:
a b .

do you think I can implement that to my previous problem? I wish I can try it but not enough time for me as of right now.

0
Commented:
shouldn't the fraction be written as 1 and 1/2
0
Commented:
here is what you need to do -

create a new function called void printFraction(double num)
move all convesion code within this function
when you do a sysout for the array, call this function Sysout(printFraction(array[i][j]));

I am sure you can do this, let  me know if you need any help.
You donot need to change the existing code/login, all you need to do is add code.
0
Commented:
There is a method in org.apache.commons.lang.math.Fraction class.

This method has the prototype:

static Fraction getFraction(double value)
0
###### It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Java

From novice to tech pro — start learning today.