如何在Java中将分数格式的字符串转换为Decimal或Float?

Tec*_*zer 7 java math android

我有几个字符串值,我从我的数据库中取出,例如

"1/4","2/3"
Run Code Online (Sandbox Code Playgroud)

但是当显示为Android ListView内容时,我需要将其显示为0.25,0.66.

现在我不想拆分字符串,然后将单个字符串转换为数字,然后将它们除以得到结果.

有谁知道,任何直接的功能如何Double.valueOfparseDouble善良?

mis*_*off 9

为什么你"不想拆分字符串,然后将字符串转换为单个字符串,然后将它们除以得到结果"

我不知道有任何内置函数可以做到这一点,所以最简单的解决方案:

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);
    }
}
Run Code Online (Sandbox Code Playgroud)

它还涵盖了您具有比率的整数表示的情况

parse("1/2") => 0.5
parse("3/7") => 0.42857142857142855
parse("1") => 1.0
Run Code Online (Sandbox Code Playgroud)


小智 6

我想您在过去两年中解决了这个问题;但是,您可以使用Apache commons分数类

它具有内置的解析器,因此如果要调用:

Fraction fraction = Fraction.getFraction("1/2");
double d = fraction.doubleValue();
Run Code Online (Sandbox Code Playgroud)

则d应包含.5。