setText上的DecimalFormat

时间:2018-03-07 18:32:04

标签: java

我正在使用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

1 个答案:

答案 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)));