当前位置: 首页 > 知识库问答 >
问题:

如何在Java中从分数格式的字符串转换为十进制或浮点数?

庞意智
2023-03-14

我从数据库中获取的字符串值很少,例如

"1/4","2/3"

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

现在我不想拆分字符串,然后隐蔽到单个字符串,到数字,然后把它们分开得到结果。

有人知道像double.valueofparsedoublekind这样的直接函数吗?

共有1个答案

阎慈
2023-03-14

为什么你“不想拆分字符串,然后隐藏到单个字符串到数字,然后把它们分开得到结果”?

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

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
 类似资料:
  • 关于将带浮点数的字符串转换为十进制浮点数的方法有很多讨论,但我没有找到用C语言解决问题的方法(python、C#等) 首先,我们输入初始数的数字系统,并将浮点数输入字符串变量。 然后将输入分成右(double)部分和左(int)部分,然后为这两部分调用函数void floatToDec(字符串输入,int sys,char标志)(标志“l”表示左部分标志“r”meens right part)。为

  • 问题内容: 我必须将,以s 表示(例如)转换为浮点值( IEEE-754 转换)。我没有使用strconv.ParseFloat函数做到这一点。还有什么我要用的吗?到目前为止我找不到。我也尝试先将其转换为整数,然后转换为浮点数,但结果是错误的。 我最后一次尝试的代码: 问题答案: 首先,需要说明输入的位长。由于十六进制表示形式有4个字节(8个十六进制数字),因此很可能是a (需要询问者澄清)。 您

  • 问题内容: 这是我正在查看的内容: 因此,我知道不能完全用二进制表示“ p” 1.15的十进制值。 因此,大的十进制大“ bdp”输出对我来说非常有意义……这是浮点数的实际值。 问题1 当浮点数“ p”转换回字符串以进行输出(如1.15)时,如何四舍五入(从内部1.149..375到1.15)? 在文档中的什么地方指定?toString javadoc并没有真正帮助(至少对我来说)。 我在语言规范

  • 我看到的是: 所以我知道“p”1.15的十进制值不能用二进制来精确表示。 所以大的十进制“bdp”输出对我来说非常有意义……这是浮点数的实际值。 问题 1 当浮点数“p”转换回字符串以进行输出(如 1.15)时,该舍入如何/在何处发生(从内部 1.149..375 值转换为 1.15)? 它在文档中的哪个位置指定?托斯特林爪哇并没有真正的帮助(至少我)。 我确实在语言规范中看到了这一点: 浮点和双

  • 问题内容: 我不太了解功能以及此处。实际上是什么意思? 为什么在这里我需要将浮点数转换为小数? 下面是相同的sql小提琴吗? http://sqlfiddle.com/#!2/1ed51b/1/0 我的问题再次重复: 实际上是什么意思? 为什么在这里我需要将浮点数转换为小数? 问题答案: 表示具有固定小数点的数字,总共有7位数字,其中2位在小数点右边。(因此,左5个,右2个。) 你并不 需要 ,除

  • 问题内容: 我在ex中有整数。16,我正在尝试将此数字转换为十六进制数字。我试图通过使用十六进制函数来实现此目的,但是每当您向十六进制函数提供整数时,它都会返回十六进制数字的字符串表示形式, 有人可以告诉我如何将字符串格式的十六进制数字转换为简单的十六进制数字。 谢谢!! 问题答案: