gpt4 book ai didi

java - 如何在 Java AWT 中使用 Bigdecimal

转载 作者:行者123 更新时间:2023-11-30 06:01:56 25 4
gpt4 key购买 nike

package SI;

import java.awt.*;
import java.awt.event.*;
import java.lang.*;
import java.math.*;
import java.math.BigDecimal;
import static oracle.jrockit.jfr.events.Bits.doubleValue;
import static oracle.jrockit.jfr.events.Bits.floatValue;
import static oracle.jrockit.jfr.events.Bits.intValue;

public class SI extends Frame implements ActionListener{
TextField ptf,rtf,ttf,sitf,atf,citf,atf1;
Button ab,sib,cib,ab1;
Label pl,rl,tl,sil,al,cil,al1;
SI(){
pl=new Label("Principal:");
pl.setBounds(15,50,50,20);
ptf=new TextField();
ptf.setBounds(150, 50, 150, 20);

rl=new Label("Rate:");
rl.setBounds(15,100,50,20);
rtf=new TextField();
rtf.setBounds(150, 100, 150, 20);

tl=new Label("Time:");
tl.setBounds(15,150,50,20);
ttf=new TextField();
ttf.setBounds(150, 150, 150, 20);

sil=new Label("Simple Interest:");
sil.setBounds(15,200,150,20);
sitf=new TextField();
sitf.setBounds(150, 200, 150, 20);
sitf.setEditable(false);

sib=new Button("Simple Interest");
sib.setBounds(120,400,100,50);
sib.addActionListener(this);

cil=new Label("Compound Interest:");
cil.setBounds(15,250,200,20);
citf=new TextField();
citf.setBounds(150, 250, 150, 20);
citf.setEditable(false);

cib=new Button("Compound Interest");
cib.setBounds(240,400,130,50);
cib.addActionListener(this);

al=new Label("Amount of SI:");
al.setBounds(15,300,200,20);
atf=new TextField();
atf.setBounds(150,300,150,20);
atf.setEditable(false);

ab=new Button("Amount of SI");
ab.setBounds(20,400,80,50);
ab.addActionListener(this);

al1=new Label("Amount of CI:");
al1.setBounds(300,300,200,20);
atf1=new TextField();
atf1.setBounds(390, 300, 150, 20);
atf1.setEditable(false);

ab1=new Button("Amount of CI");
ab1.setBounds(390,400,80,50);
ab1.addActionListener(this);


add(pl);
add(ptf);

add(rtf);
add(rl);

add(ttf);
add(tl);

add(sitf);
add(sil);
add(sib);

add(ab);
add(atf);
add(al);

add(ab1);
add(atf1);
add(al1);

add(cib);
add(citf);
add(cil);
setSize(600,600);
setLayout(null);
setVisible(true);
}
@Override
public void actionPerformed(ActionEvent e) {
String s1=ptf.getText();
String s2=rtf.getText();
String s3=ttf.getText();
BigDecimal p=new BigDecimal("s1");
BigDecimal r=new BigDecimal("s2");
BigDecimal t=new BigDecimal("s3");
BigDecimal si=new BigDecimal("0");
BigDecimal a1=new BigDecimal("0");
BigDecimal a11=new BigDecimal("0");
BigDecimal b=new BigDecimal("");
BigDecimal h=new BigDecimal("100");
BigDecimal c=new BigDecimal("");
BigDecimal i=new BigDecimal("1");
BigDecimal d=new BigDecimal("0");
BigDecimal j=new BigDecimal("0");
BigDecimal g=d.subtract(p);
if(e.getSource()==sib){
b=p.multiply(r).multiply(t).divide(h);
}else if(e.getSource()==cib){
c=i.add(r).divide(h);
j=c.pow(intValue(t));
d=p.multiply(j);
si=p.multiply(t).multiply(r).divide(h);
a1=p.add(d);
}else if(e.getSource()==ab){
si=p.multiply(t).multiply(r).divide(h);
a1=p.add(d);
}else if(e.getSource()==ab1){
c=i.add(r).divide(h);
j=c.pow(intValue(t));
d=p.multiply(j);
si=p.multiply(t).multiply(r).divide(h);
a1=p.add(d);
a11=d.subtract(p);
}
String sit=String.valueOf(si);
sitf.setText(String.valueOf(si));
String at=String.valueOf(a1);
atf.setText(at);
String at1=String.valueOf(a11);
atf1.setText(String.valueOf(a11));
String cit=String.valueOf(d);
citf.setText(String.valueOf(d));
}
public static void main(String[] args) {
// TODO code application logic here
new SI();
}
}

此小程序无法运行。当我单击该按钮时,它会引发错误。这个错误是在我将所有 double 更改为 BigDecimal 后开始的。请帮帮我。我被困在这里很多天了。这里有什么错误。我对 BigDecimal 没有太多了解。我对此很陌生。请帮帮我。为什么会抛出错误?

最佳答案

BigDecimal 的构造函数不接受空字符串。

    BigDecimal b=new BigDecimal(""); //error
BigDecimal c=new BigDecimal(""); //error

这些格式至少需要一个整数部分 - 请参阅源代码,它没有标记为可选。

来源:

关于java - 如何在 Java AWT 中使用 Bigdecimal,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52080733/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com