Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to convert from fraction formatted string to Decimal or Float in Java?

Tags:

java

android

math

I have few string values which I am fetching from my database e.g

"1/4","2/3"

But while displaying as Android ListView contents I need to display it as 0.25,0.66.

Now I don't want to split the string and then covert to individual strings to numbers and then divide them to have result.

Does anyone know, any direct functions like Double.valueOf or parseDouble kind?

like image 342
TechnoGeezer Avatar asked Nov 06 '12 11:11

TechnoGeezer


1 Answers

Why you "dont want to split the string and then covert to individual strings to numbers and then divide them to have result"?

I am not aware of any built-in function to do that so the simplest solution:

double parse(String ratio) {
    if (ratio.contains("/")) {
        String[] rat = ratio.split("/");
        return Double.parseDouble(rat[0]) / Double.parseDouble(rat[1]);
    } else {
        return Double.parseDouble(ratio);
    }
}

It also covers the case where you have integer representation of ratio

parse("1/2") => 0.5
parse("3/7") => 0.42857142857142855
parse("1") => 1.0
like image 75
mishadoff Avatar answered Sep 20 '22 07:09

mishadoff