Привет, я хочу очень простой расчет. Сначала я использовал double, но поскольку результат может быть большим, чтобы соответствовать двойнику, я впервые в своей жизни использовал bigdecimal. Я получаю сообщение об ошибке, но я понятия не имею, что я сделал не так. Спасибо за помощь!NumberFormatException: бесконечный или NaN?
Мой код:
double cn = 299792458;
double temp4 = 0;
BigDecimal en = BigDecimal.valueOf(0);
BigDecimal mn = BigDecimal.valueOf(0);
BigDecimal temp = BigDecimal.valueOf(0);
BigDecimal temp1 = BigDecimal.valueOf(0);
String temp3 = null;
//String m.getText() to bigdecimal mn
mn = new BigDecimal(m.getText().replaceAll(",", ""));
//cn^2 to double temp4
temp4 = Math.pow(cn, cn);
//dobule temp4 to bigdecimal temp
temp = new BigDecimal(temp4);
//multiply bigdecimal temp with bigdecimal mn. Saves result to bigdecimal en
en = temp.multiply(mn);
//bigdecimal en to string temp3
temp3 = en.toString();
//Set string temp3 to textfield e1
e1.setText(temp3);
Код ошибки:
Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException: Infinite or NaN
at java.math.BigDecimal.<init>(BigDecimal.java:895)
at java.math.BigDecimal.<init>(BigDecimal.java:872)
at fysik.actionPerformed(fysik.java:151)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348)
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:6535)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
at java.awt.Component.processEvent(Component.java:6300)
at java.awt.Container.processEvent(Container.java:2236)
at java.awt.Component.dispatchEventImpl(Component.java:4891)
at java.awt.Container.dispatchEventImpl(Container.java:2294)
at java.awt.Component.dispatchEvent(Component.java:4713)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4888)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4525)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4466)
at java.awt.Container.dispatchEventImpl(Container.java:2280)
at java.awt.Window.dispatchEventImpl(Window.java:2750)
at java.awt.Component.dispatchEvent(Component.java:4713)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
at java.awt.EventQueue$4.run(EventQueue.java:731)
at java.awt.EventQueue$4.run(EventQueue.java:729)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
* NumberFormatException: Infinite или NaN *, что не ясно об этом? – Tunaki
Возможная проблема X Y. Почему вы поднимаете '299792458' до силы' 299792458'? – tnw
Downvoter: это простая новичок, но OP предоставил всю необходимую информацию. –