out.write不想要数据类型double值(Java Servlet)

时间:2016-01-14 14:32:15

标签: java servlets

out.write没有'双重'值。还有另一种方法吗? 我用问题标记了这一行。 我期待着您的继续支持。

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet("/ServletDemo")
public class ServletDemo extends HttpServlet {

    private double getFahrenheit(double celsius){
        double fahrenheit = celsius * 1.8 + 32;
        return fahrenheit;
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        response.setContentType("text/html");       
        PrintWriter out = response.getWriter();
        out.write("!DOCTYPE html>\n");
        out.write("<html>\n");
        out.write("<body>\n");
        out.write("<h1>JSP Beispiel</h1>\n");
        out.write("Text aus dem Scriplet!");
        out.write("<br/>\n");
        out.write("30&deg; Celsius entsprechen\n");
        out.write(getFahrenheit(30.0)); // ----------> Problem at this line
        out.write("&deg; Fahrenheit!\n");
        out.write("</body>\n");
        out.write("</html>");
        out.close();
    }


}

3 个答案:

答案 0 :(得分:1)

带有单个参数的

PrintWriter.write()可以选择Stringchar[]int;但不是double。通过执行以下操作将您的值转换为String

out.write(String.valueOf(getFahrenheit(30.0)));

或只是

out.write(getFahrenheit(30.0) + "");

答案 1 :(得分:0)

PrintWriter#write打印一个字符或字符串文字。您可以将double转换为字符串并将其写入或使用PrintWriter#print方法来打印double。

使用String.valueOf()将double值转换为字符串文字。

摘录:

out.write(String.valueOf(getFahrenheit(30.0)));

out.print(getFahrenheit(30.0));

答案 2 :(得分:0)

使用PrintWriter,你不能写&#34;双倍但根据 https://docs.oracle.com/javase/7/docs/api/java/io/PrintWriter.html 你可以打印出来

out.print(getFahrenheit(30.0));就是这样,也是可能的 out.write(""+getFahrenheit(30.0));做类似的事情,如果在某些时候你有一些东西只支持字符串类型