繁体   English   中英

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

[英]How to convert the negative integer to positive

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值),则结果是相同的值,该值为负。

像TJ Crowder建议的那样做Math.abs,但也可以

解析输入时捕获NumberFormatException

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

}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM