Я храню некоторые значения в моей базе данных MySQL, используя мое приложение Java Swing, но оно не хранит всю сумму введенного числа. Например, если я использую float в качестве типа данных для столбца базы данных mysql, он будет хранить только 6 цифр, если я введу 123456.56, он сохранит только 123456.00 или если я введу 12345.67, он сохранит только 12345.60. То же самое, когда я изменил тип данных mysql на удвоение, он хранит только 8 цифр, поэтому, если я введу 1234567.89, он сохранит только 1234567.90 и округлит восьмую цифру. Что не так с моим кодированием? Благодарю. Я хотел бы хранить всю сумму в базе данных, например, миллионы и сотни тысяч, напр. 12345678.55 или 445874.44 в полном объеме, не превращая его в показатель степени или не сокращая его. Как мне это сделать?
if(source == btn_confirm)
{
dbconnect connect = new dbconnect();
String page = text_page.getText();
String line = text_line.getText();
String refpage = text_refpage.getText();
String refline = text_refline.getText();
String transaction_date = text_transdate.getText();
String description = text_desc.getText();
String account_code = text_accountcode.getText();
String code_type = text_codetype.getText();
String issue_date = text_issuedate.getText();
String amount = text_amount.getText();
System.out.println(amount);
try
{
connect.addTransaction(page, line, refpage, refline, transaction_date, description, account_code, code_type, issue_date, amount);
connect.close();
}
catch (Exception x)
{
System.out.println(x);
}
text_page.setText("");
text_line.setText("");
text_refpage.setText("");
text_refline.setText("");
text_transdate.setText("");
text_desc.setText("");
text_accountcode.setText("");
text_codetype.setText("");
text_issuedate.setText("");
text_amount.setText("");
text_page.requestFocus();
}
text_amount - текстовое поле, содержащее число, которое будет передано в строковую сумму. Строка раньше была float, но я решил использовать вместо нее строку, так как думал, что это не будет иметь большого значения при передаче ее в оператор SQL. Я использовал парсефлоат.
метод addTransaction добавляет транзакцию в базу данных mysql следующим образом:
public void addTransaction(String page, String line, String refpage, String refline, String transaction_date, String description, String account_code, String code_type, String issue_date, String amount) throws Exception
{
try
{
connect();
statement = conn.createStatement();
statement.executeUpdate("insert into transaction (page, line, refpage, refline, transaction_date, description, account_code, code_type, issue_date, amount) values ('" + page + "', '" + line + "', '" + refpage + "', '" + refline + "', '" + transaction_date + "', '" + description + "', '" + account_code + "', '" + code_type + "','" + issue_date + "', " + amount + ")");
System.out.println("Inserted transaction of page: " + page + " and line: " + line);
}
catch (Exception e)
{
throw e;
}
}