将用户的输入与小数相乘

时间:2015-03-24 22:48:05

标签: java user-interface decimal actionevent

 public void actionPerformed(ActionEvent ae) {
     float x, y;
     if(ae.getSource()==z) {
         x= Float.parseFloat(a.getText());
         y= x*x*3.14;
         Boomer.setText(String.valueOf(y)); 
     }
 }

我正在制作乘法GUI。我之前做过其中的几个,但这个稍有不同。这个有所不同,因为我特别允许用户通过输入半径来找到圆的区域。

我只是像其他任何基本的数学函数相关的程序一样编写这段代码,但是我为圆圈区域指定了等式。这就是问题所在。当我指定必须使用小数来查找输出时,程序才能工作。例如,如果我要告诉它做x * x * 10,它可以正常工作。我只能假设问题源于小数。

3 个答案:

答案 0 :(得分:1)

很明显3.14是双重值。因此,以下行包含不兼容的类型。它试图将双3.14放入浮动pi。

float pi = 3.14;

这是一种可能的方式:

float pi = 3.14f;

这是另一个:

float pi = (float) 3.14;

你应该采取zachjack的建议来获得准确的结果。 Math.PI也对应于double。因此,您应该使用以下行计算面积:

y = x * x * (float) Math.PI;

答案 1 :(得分:0)

我的猜测是3.14正在编译为Double而不是Float。

我建议使用Math.PI而不是3.14,然后将值更改为双打。这应该解决任何问题。

答案 2 :(得分:0)

您可以将此行y= x*x*3.14;更改为此y= x*x*(float)3.14;

相关问题