Mam problem z klasą NumberFormat.
Najpierw mam zmienne ilosc, cena_netto oraz stawka_vat którym przypisuje przeparsowane do double stringi które są wartościami z textFieldów do których wartość wpisuje użytkownik.
Za pomocą metody replace zamieniam ' , ' na ' . '
Następnie te zmienne chciałbym wysłać do bazy i zaprezentować w tabeli jTable, ale nie to jest problemem.
Problem tkwi w tym żeby np. taka wartość 89.93942879 była prezentowana w tabeli jako 89.94
użyłem do tego klasy NumberFormat ale niestety powoduje to błędy.
Co jest nie tak w tym kodzie.
Z góry dzięki za jakąś pomoc.
Poniżej kod źródłowy metody w której jest błąd oraz kod błędu.
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
double ilosc = Double.parseDouble(jTextField19.getText().toString().replace(',', '.'));
double cena_netto = Double.parseDouble(jTextField21.getText().toString().replace(',', '.'));
double stawka_vat = Double.parseDouble(jTextField22.getText().toString().replace(',', '.'));
NumberFormat n1 = NumberFormat.getInstance();
n1.setMinimumFractionDigits(2);
n1.setMaximumFractionDigits(2);
String n1s = n1.format(ilosc).replace(',', '.');
ilosc = Double.parseDouble(n1s);
NumberFormat n2 = NumberFormat.getInstance();
n2.setMinimumFractionDigits(2);
n2.setMaximumFractionDigits(2);
String n2s = n2.format(cena_netto).replace(',', '.');
cena_netto = Double.parseDouble(n2s);
NumberFormat n3 = NumberFormat.getInstance();
n3.setMinimumFractionDigits(2);
n3.setMaximumFractionDigits(2);
String n3s = n3.format(stawka_vat).replace(',', '.');
stawka_vat = Double.parseDouble(n3s);
double wartosc_netto = cena_netto * ilosc;
double kwota_vat = wartosc_netto * stawka_vat * 0.01;
double wartosc_brutto = wartosc_netto + kwota_vat;
NumberFormat n4 = NumberFormat.getInstance();
n4.setMinimumFractionDigits(2);
n4.setMaximumFractionDigits(2);
String n4s = n4.format(wartosc_netto).replace(',','.');
wartosc_netto = Double.parseDouble(n4s);
NumberFormat n5 = NumberFormat.getInstance();
n5.setMaximumFractionDigits(2);
n5.setMinimumFractionDigits(2);
String n5s = n5.format(kwota_vat).replace(',','.');
kwota_vat = Double.parseDouble(n5s);
NumberFormat n6 = NumberFormat.getInstance();
n6.setMinimumFractionDigits(2);
n6.setMaximumFractionDigits(2);
String n6s = n6.format(wartosc_brutto).replace(',','.');
wartosc_brutto = Double.parseDouble(n6s);
try {
String sql = "insert into Faktura(lp, nazwa, kod, pkwiu, ilosc, jm, cena_netto, wartosc_netto, stawka_vat, kwota_vat, wartosc_brutto) values (?,?,?,?,?,?,?,?,?,?,?)";
pst = conn.prepareStatement(sql);
pst.setString(1, jTextField15.getText()); // lp
pst.setString(2, jTextField16.getText()); // nazwa
pst.setString(3, jTextField17.getText()); // kod
pst.setString(4, jTextField18.getText()); // pkwiu
pst.setDouble(5, ilosc); // ilość
pst.setString(6, jTextField20.getText()); // jm
pst.setDouble(7, cena_netto); // cena_netto
pst.setDouble(8, wartosc_netto); // wartość_netto
pst.setDouble(9, stawka_vat); // stawka_vat
pst.setDouble(10, kwota_vat); // kwota_vat
pst.setDouble(11, wartosc_brutto); // wartosc_brutto
pst.execute();
JOptionPane.showMessageDialog(null, "Dodano poprawnie");
} catch (Exception e) {
} finally {
try {
rs.close();
pst.close();
} catch (Exception e) {
}
}
Update_table();
}
Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException: For input string: "2 357.98"
at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1241)
at java.lang.Double.parseDouble(Double.java:540)
at logowanie.DaneDoFakturyVAT2.jButton1ActionPerformed(DaneDoFakturyVAT2.java:1055)
at logowanie.DaneDoFakturyVAT2.access$400(DaneDoFakturyVAT2.java:42)
at logowanie.DaneDoFakturyVAT2$5.actionPerformed(DaneDoFakturyVAT2.java:343)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.Component.processMouseEvent(Component.java:6505)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3320)
at java.awt.Component.processEvent(Component.java:6270)
at java.awt.Container.processEvent(Container.java:2229)
at java.awt.Component.dispatchEventImpl(Component.java:4861)
at java.awt.Container.dispatchEventImpl(Container.java:2287)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
at java.awt.Container.dispatchEventImpl(Container.java:2273)
at java.awt.Window.dispatchEventImpl(Window.java:2719)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:735)
at java.awt.EventQueue.access$200(EventQueue.java:103)
at java.awt.EventQueue$3.run(EventQueue.java:694)
at java.awt.EventQueue$3.run(EventQueue.java:692)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
at java.awt.EventQueue$4.run(EventQueue.java:708)
at java.awt.EventQueue$4.run(EventQueue.java:706)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:705)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)