如何将负整数转换为正整数


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);
}

此代码在我的数据库中显示负Cubic_meter列,即使jLabel_PREVIOUS_READ.getText()小于jLabel_PRESENT_READ.getText(),也希望有一个正Cubic_meter。

听起来您可能正在寻找Math.abs

返回 int 值的绝对值。如果参数不是负数,则返回参数。如果参数为负数,则返回参数的否定。

(也有其他类型的 版本 - longfloatdouble...

有一个重要的警告:

请注意,如果参数等于 Integer.MIN_VALUE 的值,这是最负的可表示的 int 值,则结果是相同的值,即负值。

像T.J. Crowder建议的那样做Math.abs,但也做

解析输入时捕获数字格式异常

更改 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);

http://en.wikipedia.org/wiki/Prepared_statement

使用绑定变量是防止 SQL 注入的好方法。

你能用这个吗?

 value=value*-1; //simply multiply by -1. 

您还可以设置一个条件,以使用 if 语句(例如(检查该值是否为负数。

 if(value<0)
   value=value*-1; //simply multiply by -1. 

试试这个:

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);
}

相关内容

  • 没有找到相关文章

最新更新