如何将双精度转换为字符串

时间:2019-03-04 21:03:41

标签: java android types

public String solve() {
        ss = log(pow(y, -sqrt(abs(x)))) * (x + y / 2) + sin(atan(z));
        result = toString(ss);
        return result;
    }

不知道如何将ss转换为字符串。我需要返回字符串格式的结果

2 个答案:

答案 0 :(得分:0)

最简单的方法是简单地将其与空字符串连接起来,然后自动将其转换:

String stringFromDouble = ss + "";

替代方法:

 String stringFromDouble = Double.toString(ss);
 String stringFromDouble = String.valueOf(ss)
 String stringFromDouble = new Double(ss).toString()

答案 1 :(得分:0)

要直接回答您的问题,您可以执行以下操作:

return

但是,这里至少存在两个问题:

  1. 您的key函数正在尝试完成两项不相关的任务:a)找到一些数学方程式的解,并将b)将该解格式化为人类可读的格式。按照函数名称,我认为它应该只做第一件事,而另一个函数应该做第二件事。

  2. 使用result = Double.toString(ss); 留下了很大的变化空间。这主要是由于计算机将十进制数表示为solve()的性质所致。这超出了此答案的范围,但是我建议您阅读Is floating point math broken?了解更多详细信息。要提供对确切格式的更多控制,应改用NumberFormat

旁边:

我发现您没有在此处发布的代码中声明Double.toString()double。如果将它们声明为诸如result之类的类字段,建议您将它们声明为局部变量。通常,应在尽可能小的范围内声明变量。