我正在使用JFrameForm,只是在GUI上重新构建一些旧练习。我想知道我是否可以在setText();
使用十进制格式这是我的代码:
private void btn_calcularActionPerformed(java.awt.event.ActionEvent evt) {
DecimalFormat redondear=new DecimalFormat("##.##");
double radio;
double area;
radio=Double.parseDouble(txt_field_radio.getText());
area=Math.PI*Math.pow(radio, 2);
txt_field_area.setText(Double.toString(area));
这就是我对txt_field_area.setText(Double.toString(area));
感到好奇的一句话。如果我把2作为半径,我希望它输出12.56;相反,它输出12.566370614359172。
我试过了:
txt_field_area.setText(redondear.format(Double.toString(area)));
但它输出错误:
java.lang.IllegalArgumentException: Cannot format given Object as a Number
答案 0 :(得分:1)
看看这个:
DecimalFormat df = new DecimalFormat("0.00##");
String result = df.format(34.4959);
您需要调用redondear格式方法
private void btn_calcularActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
DecimalFormat redondear=new DecimalFormat("0.00##");
//******* VARIABLES *****
double radio;
double area;
//****** CAPTURA DE DATOS ****
radio=Double.parseDouble(txt_field_radio.getText());
//****** OPERACIONES *********
area=Math.PI*Math.pow(radio, 2);
//**** IMPRESION ***********
txt_field_area.setText(redondear.format(Double.toString(area)));