计算三角形面积,返回结果需要保留3位小数或者6位小数
使用方法
保留3位小数
- 输入数值 a(3)
- 输入数值 b(4)
- 输入数值 c(5)
- 选择保留3位小数
- 点击提交按钮
保留6位小数
- 输入数值 a(6)
- 输入数值 b(6)
- 输入数值 c(6)
- 选择保留6位小数
- 点击提交按钮
主要逻辑
GetArea.tag
- 需要根据
optionStr
进行分支判断 - 使用
String.format()
进行小数点保留
<%@ tag pageEncoding="gb2312" %>
<%@ attribute name="numberA" required="true" %>
<%@ attribute name="numberB" required="true" %>
<%@ attribute name="numberC" required="true" %>
<%@ attribute name="optionStr" required="true" %>
<%@ variable name-given="area" scope="AT_END" %>
<%@ variable name-given="message" scope="AT_END" %>
<%!
public double getTriangleArea(double a, double b, double c) {
if (a + b > c && a + c > b && c + b > a) {
double p = (a + b + c) * 0.5;
double area = Math.sqrt(p * (p - a) * (p - b) * (p - c));
return area;
} else
return 0;
}
%>
<% try {
double a = Double.parseDouble(numberA);
double b = Double.parseDouble(numberB);
double c = Double.parseDouble(numberC);
double result = getTriangleArea(a, b, c);
if (optionStr.equals("3")) {
jspContext.setAttribute("area", String.format("%.3f", result));
} else if (optionStr.equals("6")) {
jspContext.setAttribute("area", String.format("%.6f", result));
}
jspContext.setAttribute("message", "三角形面积");
} catch (Exception e) {
jspContext.setAttribute("area", "0");
jspContext.setAttribute("message", "" + e.toString());
}
%>
xiti3_7.jsp
<% String a = request.getParameter("a");
String b = request.getParameter("b");
String c = request.getParameter("c");
String o = request.getParameter("o");
if (a == null || b == null || c == null || o == null) {
a = "0";
b = "0";
c = "0";
o = "3";
}
if (a.length() > 0 && b.length() > 0 && c.length() > 0) {
%> <computer:GetArea_2 numberA="<%=a%>" numberB="<%=b%>" numberC="<%=c%>" optionStr="<%=o%>"/>
<br><%=message%>
<br><%=area%>
<%}
%>
注意
request.getParameter()
获取的对象需要判空