2012-11-06 36 views
7

我有我从我的数据库e.g如何将分数格式化字符串转换为Java中的Decimal或Float?

"1/4","2/3" 

获取一些字符串值,但是在显示由于Android的ListView内容我需要显示为0.250.66

现在我不想分割字符串,然后转换为单个字符串到数字,然后将它们分割为有结果。

有谁知道,像Double.valueOfparseDouble类似的任何直接函数?

+0

您的需求找到解决方案似乎不合理,它似乎是像这样做的最佳方法。 –

+0

是的gabriel,即使我在想为什么有人会将数值保存为数据库中的1/4和2/3,但就客户的关注而言,是的,他们确实有这样的价值,所以需要解决方法。 –

+0

我的评论不是关于如何保存数据(自己看到一些奇怪的东西),而是限制使用split(“/”)来解决问题。 –

回答

-1

尝试使用

SpannableStringBuilder test = new SpannableStringBuilder(); 
test.append("\n"); 
test.append(Html.fromHtml("<sup>5</sup>/<sub>9</sub>")); 
test.append("\n"); 
+0

你得到了OP错误我很害怕 –

1

您可以分割使用split("/")分数。然后,您可以将值转换为Double并执行除法。我不知道Android,这就是我如何在Java中做到这一点。

+1

引用OP:_“现在我不想分割字符串,然后将单个字符串转换为数字,然后将它们分开以得到结果。”_ – Less

+0

好的,对不起。但我不知道其他更简单的方法... – jmrodrigg

8

为什么你“不想分割字符串,然后转换为单个字符串的数字,然后将它们分为有结果”

我不知道任何内置的功能来做到这一点,因此最简单的解决方案:

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); 
    } 
} 

它还包括,你必须比

parse("1/2") => 0.5 
parse("3/7") => 0.42857142857142855 
parse("1") => 1.0 
1

在java中的整数表示的情况下, ,我们没有任何东西像JavaScript的eval,所以你可以使用this

0

我不认为有这样的事情。但我不明白你为什么不创建自己的功能是这样的:

public static double fromStringFraction(String fraction){ 
    String[] fractionArray = fraction.split("/"); 
    try { 
     if (fractionArray.length != 2){ 
      if (fractionArray.length == 1){ 
       return Double.parseDouble(fractionArray[0]); 
      } 
      else { 
       return 0d; 
      } 
     } 
     double b = Double.parseDouble(fractionArray[1]); 
     if (b==0d){ 
      return 0d; 
     } 
     Double a = Double.parseDouble(fractionArray[0]); 
     return a/b; 
    } 
    catch (NumberFormatException e){ 
     return 0d; 
    } 
} 
+0

嘿gabga,我有艾雷迪写道,我知道通过分裂我可以达到结果,但不想做这样的工作。反正谢谢。 –

3

我想你已经在过去的2年解决了这个问题;但是,您可以使用Apache commons fraction class

它有一个内置的解析器,所以如果你要拨打:

Fraction fraction = Fraction.getFraction("1/2"); 
double d = fraction.doubleValue(); 

然后d应该包含0.5。

相关问题