String Fraction to Number  
Author Message
czupet





PostPosted: 2004-5-6 21:50:00 Top

java-programmer, String Fraction to Number Does anyone have an example of how to convert a String "26 1/2" to double 26.5 ?

Peter

Thank You
 
VisionSet





PostPosted: 2004-5-6 22:33:00 Top

java-programmer >> String Fraction to Number
"Peter" <email***@***.com> wrote in message
news:email***@***.com...
> 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;


 
Rob Shepherd





PostPosted: 2004-5-6 23:17:00 Top

java-programmer >> String Fraction to Number Peter wrote:
> 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
 
 
antroy





PostPosted: 2004-5-6 23:43:00 Top

java-programmer >> String Fraction to Number 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).


--
Ant...
 
 
czupet





PostPosted: 2004-5-7 1:46:00 Top

java-programmer >> String Fraction to Number "VisionSet" <email***@***.com> wrote in message news:<i1smc.59$email***@***.com>...
> "Peter" <email***@***.com> wrote in message
> news:email***@***.com...
> > 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;

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.
 
 
groupsNO_SPAM





PostPosted: 2004-5-7 4:25:00 Top

java-programmer >> String Fraction to Number "VisionSet" <email***@***.com> wrote in message news:<i1smc.59$email***@***.com>...
> "Peter" <email***@***.com> wrote in message
> news:email***@***.com...
> > 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;

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[i].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);