Pessoal,
Consegui pegar os valores, mas estão em String:
String despesas = (String)request.getAttribute("totalDespesa");
String receitas = (String)request.getAttribute("totalReceita");
Como faço para calcular essa diferença?
Obrigado.
Pessoal,
Consegui pegar os valores, mas estão em String:
String despesas = (String)request.getAttribute("totalDespesa");
String receitas = (String)request.getAttribute("totalReceita");
Como faço para calcular essa diferença?
Obrigado.
Sabendo-se que NUNCA virá um NULL na string, assim é uma das maneiras, a grosso modo, sem pensar muito:
double Resultado = new Double(receitas).doubleValue() - new Double(despesas).doubleValue();
Não funcionou (quando tento calcular, carrega uma tela em branco)!
Este é o código completo:
<%@ taglib uri="/WEB-INF/c.tld" prefix="c" %>
<%@ page import="br.com.cbcon.bean.*" %>
<%@ page import="br.com.cbcon.application.Util" %>
<%@ page import="java.util.LinkedList" %>
<%
String despesas = (String)request.getAttribute("totalDespesa")==null?"0":(String)request.getAttribute("totalDespesa");
String receitas = (String)request.getAttribute("totalReceita")==null?"0":(String)request.getAttribute("totalReceita");
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Despesas</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="../style.css" rel="stylesheet" type="text/css">
<script src="../interface/prototype.js"></script>
</head>
<body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
<form name="form1" method="post" action="Controller?cmd=abrirfluxocaixa">
<jsp:include flush="false" page="../interface/Abas.jsp?aba=2" />
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td>
<input name="dataInicio" type="text" id="dataInicio" size="10" maxlength="10">
<input name="dataFim" type="text" id="dataFim" size="10" maxlength="10">
</td>
<td>
<input type="submit" name="Submit" value="Calcular">
</td>
</tr>
</table>
<% double resultado = new Double(receitas).doubleValue() - new Double(despesas).doubleValue(); %>
<%=resultado %>
</form>
</body>
</html>
Obrigado.
Como é?
Página em branco?
Traduz aí…
Esse seu jsp compilou??
Veja se não faltou referenciar o pacote completo do Double
java.lang.Double
Olá,
Esse double não está funcionando, inicio o código assim:
<%@ taglib uri="/WEB-INF/c.tld" prefix="c" %>
<%@ page import="br.com.cbcon.bean.*" %>
<%@ page import="br.com.cbcon.application.Util" %>
<%@ page import="java.util.LinkedList" %>
<%@ page import="java.lang.Double" %>
<%
String despesas = (String)request.getAttribute("totalDespesa")==null?"0,00":(String)request.getAttribute("totalDespesa");
String receitas = (String)request.getAttribute("totalReceita")==null?"0,00":(String)request.getAttribute("totalReceita");
double totalReceita = new Double(receitas).doubleValue();
double totalDespesa = new Double(despesas).doubleValue();
%>
Quando tento carregar esse jsp ele abre em branco, como faço para ver o erro, pq no console do tomcat no eclipse não dá nenhum erro. Quando tiro as duas linhas do double e carrego a página ele volta a funcionar.
Vinicius.
A sim, esqueci de um detalhe. O valor vindo nas variáveis despesas e receitas deve estar vindo com vírgula ao invés de ponto daí o new Double realmente não funciona.
Você deverá primeiro converter esse número para o padrão brasileiro.
Assim é uma maneira:
Locale loc = new Locale("pt", "BR");
NumberFormat formato = NumberFormat.getNumberInstance(loc);
Number b = null;
try {
b = formato.parse("2,3");
}
catch (Exception ex) {
System.out.println(ex);
}
Resultado:
2.3
Então, de posse desse número convertido você pode fazer o cálculo.
Veja que eu usei a classe PAI Number, depois disso você pode user um dos seus métodos pra gerar um primitivo double, int, long e etc…
Ex.: b.doubleValue(), b.intValue()
Está quase lá:
String despesas = (String)request.getAttribute("totalDespesa")==null?"0":(String)request.getAttribute("totalDespesa");
String receitas = (String)request.getAttribute("totalReceita")==null?"0":(String)request.getAttribute("totalReceita");
Locale loc = new Locale("pt", "BR");
NumberFormat formato = NumberFormat.getNumberInstance(loc);
Number despesas1 = null;
Number receitas1 = null;
despesas1 = formato.parse(despesas);
receitas1 = formato.parse(receitas);
Agora preciso fazer receitas1 - despesas1:
Double totalReceita1 = receitas1.doubleValue();
Double totalDespesa1 = receitas1.doubleValue();
Double total = receitas1 - despesas1;
Pois irei usar essas variáveis para imprimir no browser:
if (despesas.equalsIgnoreCase("0") && receitas.equalsIgnoreCase("0")) {
out.print("0,00");
} else {
out.print(total);
}
Mas total está imprimindo 0.0 e era para imprimir um valor, pois despesas e receitas possuem valores.
Vinicius.
Então tá, taí de bandeja:
public static void main(String[] args) {
String despesasStr = "2,3";
String receitasStr = "4,5";
Locale loc = new Locale("pt", "BR");
NumberFormat formato = NumberFormat.getNumberInstance(loc);
Number despesas = null;
Number receitas = null;
double resultado = 0;
try {
despesas = formato.parse(despesasStr);
receitas = formato.parse(receitasStr);
resultado = receitas.doubleValue() - despesas.doubleValue();
}
catch (Exception ex) {
System.out.println(ex);
}
System.out.println(resultado);
}
Resultado no console da IDE:
2.2