ここから本文です

[JAVAについて質問です] result2 = result1.add(ITEMPRICEPre); このコードが「r...

t12********さん

2020/7/1416:58:57

[JAVAについて質問です]
result2 = result1.add(ITEMPRICEPre);
このコードが「result1」と「ITEMPRICEPre」足してくれません。

おそらくif (ID1==IDPrev)の箇所がイコールになっていないからだと思いますが、どのようにしたら動いてくれますでしょうか。

最終的にはDBから読み込んでCSVに出力するのですが、
現時点で出力してみると「ID1」と「IDPrev」のIDは同じにも関わらず、
result2 = result1.add(ITEMPRICEPre);
が動いていません。

ご指南を宜しくお願いいたします。
下記JSPで記述しておりますコードの一部になります。



DatabaseAccessPool db=new DatabaseAccessPool(); //データベース接続
try {


String sql="SELECT TRADELIST.ID, TRADELIST.ITEMPRICE2, TRADEINFO.ID, TRADEINFO.SETCONTENTS, TRADEINFO.MATERIAL, TRADEINFO.HSCODE, TRADEINFO.PIECEQTY FROM TRADELIST LEFT JOIN TRADEINFO ON TRADEINFO.ID = TRADELIST.ID";
ResultSet rs=new ResultSet(db.executeQuery(sql));

String IDPrev;
IDPrev = null; //前行のIDを格納
BigDecimal ITEMPRICEPre;
ITEMPRICEPre=null; //前行の価格を格納
BigDecimal result2; //変数の宣言

while(rs.next()){ //1行ずつDBを読み込む

//DB内のテーブル//
String ID1=rs.getString("ID"); //ID
String ITEMPRICE2=rs.getString("ITEMPRICE2"); //本体価格
String PIECEQTY=rs.getString("PIECEQTY"); //本体に含まれるパーツの数
/////////////////

BigDecimal ITEMPRICE2big = new BigDecimal(ITEMPRICE2);
BigDecimal PIECEQTYbig = new BigDecimal(PIECEQTY);
BigDecimal result1 = ITEMPRICE2big.divide(PIECEQTYbig, 2, RoundingMode.HALF_UP); //本体価格をパーツの数で割り、パーツ単体の価格を出す。


if (ID1==IDPrev) { //前行のIDと本行のIDが同じであれば

result2 = result1.add(ITEMPRICEPre); //前行のパーツ単体の価格と本行のパーツ単体の価格を足し算する。

}else{result2 = result1;} // そうでなければ、result1のまま(変更なし)


%><%=ID1%>,<%=ITEMPRICE2%>,<%=result1%>,<%=IDPrev%>,<%=ITEMPRICEPre%>,<%=result2%><% //ここの値がCSVから出力される

IDPrev = ID1; // 本行のIDを次行へ格納する (前行IDとなる渡される)
result2 = ITEMPRICEPre; // 価格(result2)が次行へ格納される (前行の価格として渡される)


%>
<%
}

}catch(Exception e){
throw new ServletException( e );
}finally{
db.close();
}
%>

閲覧数:
9
回答数:
1
お礼:
25枚

違反報告

ベストアンサーに選ばれた回答

ugnagさん

2020/7/1417:09:15

t12********さん(1148958149)


文字列が同じかどうかは、equalsメソッドで比較してください。

あわせて知りたい

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる