簡體   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