Java 如何将负整数转换为正整数
此代码在我的数据库中显示负立方米列,即使jLabel\u PREVIOUS\u READ.getText小于jLabel\u PRESENT\u READ.getText,也希望有正立方米。听起来您可能在寻找: 返回整数值的绝对值。如果参数不是负数,则返回参数。如果参数是否定的,则返回参数的否定 也有其他类型的版本-长,浮动,双 有一个重要的警告: 请注意,如果参数等于Integer.MIN_value(最负的可表示int值)的值,则结果是相同的值,即负值 你能用这个吗Java 如何将负整数转换为正整数,java,netbeans,wampserver,Java,Netbeans,Wampserver,此代码在我的数据库中显示负立方米列,即使jLabel\u PREVIOUS\u READ.getText小于jLabel\u PRESENT\u READ.getText,也希望有正立方米。听起来您可能在寻找: 返回整数值的绝对值。如果参数不是负数,则返回参数。如果参数是否定的,则返回参数的否定 也有其他类型的版本-长,浮动,双 有一个重要的警告: 请注意,如果参数等于Integer.MIN_value(最负的可表示int值)的值,则结果是相同的值,即负值 你能用这个吗 String v1 =
String v1 = lbl_READING_NUMBER.getText();
int a = Integer.parseInt(jLabel_PREVIOUS_READ.getText());
int b = Integer.parseInt(jLabel_PRESENT_READ.getText());
int cm = a-b;
try{
String sql = "UPDATE reading SET Cubic_meter=' "+cm+" ' WHERE Reading_Number=' "+v1+"' ";
ps = conn.prepareStatement(sql);
rs=ps.executeUpdate();
}
catch(Exception e){
JOptionPane.showMessageDialog(null, e);
}
您还可以设置一个条件,使用if语句(例如)检查值是否为负值
value=value*-1; //simply multiply by -1.
像T.J.Crowder建议的那样做数学,但也要做 分析输入时捕获NumberFormatException 将SQL语句更改为使用绑定变量,如下所示
if(value<0)
value=value*-1; //simply multiply by -1.
使用绑定变量是防止SQL注入的良好做法。尝试以下方法:
String sql = "UPDATE reading SET Cubic_meter=? WHERE Reading_Number= ?";
ps = conn.prepareStatement(sql);
ps.setInt(1, cm); // assuming always positive
ps.setInt(2, v1);
请告诉我如何将其插入代码。谢谢你的回答。@jhaezjohn:int cm=Math.absa-b;?Crowder先生提供的解决方案非常好,而且实施时间更短。可以将其用作value=Math.absvalue;。先生,我遵从您的建议,但知道出现了一个异常情况:没有为参数1指定值字符串sql=更新读数集立方米=?其中读数_数=?;ps=conn.prepareStatementsql;执行更新;ps.setInt1,cm;ps.setInt2,v1;您需要将executeUpdate设置为Last如何解析代码中的NumberFormatException sirI使用NumberFormatException时代码出错:ps=conn.prepareStatementsql;ps.setInt1,cm;ps.setInt2,v1;执行更新;与您的肯定/否定问题无关,但正如ChoChoPK指出的,最好使用参数化查询,而不是字符串连接。原因如下:如果下面的答案中有一个回答了你的问题,那么你就会想接受这个答案。细节:但前提是它真的得到了回答。
int cm = a-b;
int cm2 = cm*(-1);
try{
String sql = "UPDATE reading SET Cubic_meter=' "+cm2+" ' WHERE Reading_Number=' "+v1+"' ";
ps = conn.prepareStatement(sql);
rs=ps.executeUpdate();
}
catch(Exception e){
JOptionPane.showMessageDialog(null, e);
}