2017-09-19 6 views
-1

評価用のカスタムアプリケーションを作成します 入力と生成されたデータの一部が浮動小数点値である だから私はそのデータをMySQLデータベースに保存しません。例 - 10.25それは10.00として保存し、残念ながら10.25ません10.00 を保存する必要があり、元の値元のユーザー入力でmysqlデータベースにデータを保存する方法

(10.25としてデータを保存する方法) しかし、この場合には、私のコードは

、以前のように値を保存

これは私が使用したコードです -

connectDB(); 
try{ 

    String value1 = txt_search_code.getText(); 
    String value2 = txt_item_code.getText(); 
    String value3 = txt_discription.getText(); 
    String value4 = txt_bin_balance.getText(); 
    String value5 = txt_date.getText(); 
    String value6 = txt_issued_quantaty.getText(); 
    String value7 = txt_issued_inno.getText(); 
    String value8 = txt_arrived_quantaty.getText(); 
    String value9 = txt_arrived_inno.getText(); 
    String value10 = txt_final_bin_balance.getText(); 

    String sql = "Update tbl_stock set No='"+value1+"',ITEM_CODE='"+value2+"',DISCRIPTION='"+value3+"',PREVIOUS_BIN_BALANCE='"+value4+ 
       "',DATE='"+value5+"',ISSUED_QUANTATY='"+value6+"',ISSUED_INVOICE_NO='"+value7+"',ARRIVED_QUANTATY='"+value8+"',ARRIVED_INVOICE_NO='"+value9+"',FINAL_BINCARD_BALANCE='"+value10+"'WHERE No='"+value1+"' "; 
    PreparedStatement pstmt = con.prepareStatement(sql); 
    pstmt.execute(); 
    JOptionPane.showMessageDialog(null, " Your new records saved Succsessfully!!"); 

}catch(Exception e){ 

    JOptionPane.showMessageDialog(null,e); 
} 

closeDB(); 

これは おかげ

私に例をしてください与えるので、どのように私は 元の値にデータを保存することができ、私はこの問題を解決するために助けてください データベース

SELECT * FROM db_biling.tbl_stock; 
    tbl_stock.No, tbl_stock.ITEM_CODE, tbl_stock.DISCRIPTION, 
    tbl_stock.PREVIOUS_BIN_BALANCE, tbl_stock.DATE, 
    tbl_stock.ISSUED_QUANTATY, tbl_stock.ISSUED_INVOICE_NO,  
    tbl_stock.ARRIVED_QUANTATY, tbl_stock.ARRIVED_INVOICE_NO, 
    tbl_stock.FINAL_BINCARD_BALANCE FROM db_biling.tbl_stock; 

のすべての文MYSQLです私は問題が事前にあると思い

UPDATE

CREATE TABLE tbl_stock ( 
    No int(11) NOT NULL, 
    ITEM_CODE varchar(45) DEFAULT NULL, 
    DISCRIPTION varchar(45) DEFAULT NULL, 
    PREVIOUS_BIN_BALANCE decimal(2,0) DEFAULT NULL, 
    DATE varchar(45) DEFAULT NULL, 
    ISSUED_QUANTATY decimal(2,0) DEFAULT NULL, 
    ISSUED_INVOICE_NO varchar(45) DEFAULT NULL, 
    ARRIVED_QUANTATY decimal(2,0) DEFAULT NULL, 
    ARRIVED_INVOICE_NO varchar(45) DEFAULT NULL, 
    FINAL_BINCARD_BALANCE decimal(2,0) DEFAULT NULL, 
    PRIMARY KEY (No) 
) ENGINE=InnoDB DEFAULT CHARSET=utf8 
+0

あなたの列のデータ型は何ですか? CREATE TABLEステートメントを表示します。 – CBroe

+0

TABLE 'tbl_stock'( ' No' INT(11)NULL NOT、 'ITEM_CODE'のVARCHAR(45)は、デフォルトのNULL、 ' DISCRIPTION'のVARCHAR(45)は、デフォルトのNULL、 'PREVIOUS_BIN_BALANCE'小数(2,0)を作成DEFAULTのNULL、 'DATE'のVARCHAR(45)は、デフォルトのNULL、 ' ISSUED_QUANTATY'進(2,0)は、デフォルトのNULL、 'ISSUED_INVOICE_NO'のVARCHAR(45)は、デフォルトのNULL、 ' ARRIVED_QUANTATY'進(2,0)DEFAULT NULL 、= UTF8 $$ –

+0

'DECIMAL ' ARRIVED_INVOICE_NO'のVARCHAR(45)は、デフォルトのNULL、 'FINAL_BINCARD_BALANCE'小数(2,0)は、デフォルトのNULL、 PRIMARY KEY(' No') )ENGINE = InnoDBのデフォルトの文字セット(2、 0) 'は基本的に整数なので、' D ECIMAL(6,2) 'は小数点以下2桁を許可します...または[マニュアルを読む](https://dev.mysql.com/doc/refman/5.7/en/precision-math-decimal-characteristics。 html) – RiggsFolly

答えて

0

DECIMAL(10,2)の場合、2の小数点以下2桁の合計10個の数字があります(10.215は10.22として保存され、10.214は10.21になります)。あなたのケースで

、あなたは...小数(2,0)を使用するので、10.25は10

REFになります: https://stackoverflow.com/a/13501505/7016969

関連する問題