String Fraction to Number

P

Peter

Does anyone have an example of how to convert a String "26 1/2" to double 26.5 ?

Peter

Thank You
 
V

VisionSet

Peter said:
Does anyone have an example of how to convert a String "26 1/2" to double
26.5 ?

double myDouble;
if(myString.equals("26 1/2")) myDouble = 26.5;
 
R

Rob Shepherd

Peter said:
Does anyone have an example of how to convert a String "26 1/2" to double 26.5 ?

Peter

Thank You


From the archives I dug out this method.
Last time i used it it worked (for my input data)
....
public static double fracNumericStringToDouble(String str)
{
double mydouble;

int firstpartindex = str.indexOf(" ");
String wholepart = str.substring(0, firstpartindex);

System.out.println(wholepart);

int secondpartindex = str.indexOf("/");
String numerator = str.substring(firstpartindex+1, secondpartindex);
System.out.println(numerator);

String denominator = str.substring(secondpartindex+1, str.length());
System.out.println(denominator);

mydouble = (Double.parseDouble(numerator) / Double.parseDouble(denominator));
mydouble += Double.parseDouble(wholepart);

return mydouble;
}
....

Please test

HTH

Rob
 
A

antroy

Should perhaps alter it as follows to take into account whole numbers:

Rob Shepherd wrote:
....
public static double fracNumericStringToDouble(String str)
{
double mydouble;

int firstpartindex = str.indexOf(" ");

if (firstpartindex == -1) firstpartindex = str.length();
String wholepart = str.substring(0, firstpartindex);

System.out.println(wholepart);
int secondpartindex = str.indexOf("/");

String numerator = "1";
String denominator = "1";

if (secondpartindex != -1){

numerator = str.substring(firstpartindex+1,
secondpartindex);
System.out.println(numerator);
denominator = str.substring(secondpartindex+1,
str.length());
System.out.println(denominator);

}

mydouble = (Double.parseDouble(numerator) /
Double.parseDouble(denominator));
mydouble += Double.parseDouble(wholepart);

return mydouble;
}
...

Please test

Again not tested, and could of course be cleaned up (the String
numerator = "1"; is a bit of a hack for example).
 
P

Peter

VisionSet said:
26.5 ?

double myDouble;
if(myString.equals("26 1/2")) myDouble = 26.5;

Thanks for your help, but that's not exactly what I am looking for.
The String number can be any number with a fraction not just "26 1/2".
I am looking for a conversion function.
 
R

Roedy Green

Does anyone have an example of how to convert a String "26 1/2" to double 26.5 ?

parse the thrtee pieces, convert to double and compute value =
integral + numerator / demoninatator
 
M

Mason Bryant

VisionSet said:
26.5 ?

double myDouble;
if(myString.equals("26 1/2")) myDouble = 26.5;

Cute. You might also try the following (hackish) solution.

String l_input = "26 1/2";
String[] l_parts = l_input.split("(\\s)+");
double l_value = 0;
for(int i = 0; i < l_parts.length; i++) {

String l_fractionParts[] = l_parts.split("(\\D)+");
if(1 == l_fractionParts.length) {
l_value += Double.parseDouble(l_fractionParts[0]);
} else if(2 == l_fractionParts.length) {
l_value += Double.parseDouble(l_fractionParts[0]) /
Double.parseDouble(l_fractionParts[1]);
}
}
System.out.println(l_value);
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,764
Messages
2,569,566
Members
45,041
Latest member
RomeoFarnh

Latest Threads

Top