android中pow的用法,android - Math.pow(X,Y) java - Stack Overflow

Im making a scientific calculator and i want to use the power function but it gives the wrong answer like when i enter lets say 2 as a first value and then 3 as a second it gives me 27 instead of 8 its frustrating please help this is the code for the power button in the switch statement :

Note that the first value is save as this before the switch statement

ok here is the full code

package com.example.scienteficcalc;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

requestWindowFeature(Window.FEATURE_NO_TITLE);

getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);

setContentView(R.layout.activity_main);

num =(TextView)findViewById(R.id.etnum);

bsin=(Button)findViewById(R.id.bsin);

bcos=(Button)findViewById(R.id.bcos);

btan=(Button)findViewById(R.id.btan);

bsec=(Button)findViewById(R.id.bsec);

bcsc=(Button)findViewById(R.id.bcsc);

bcot=(Button)findViewById(R.id.bcot);

bln=(Button)findViewById(R.id.bln);

blog=(Button)findViewById(R.id.blog);

bpwr=(Button)findViewById(R.id.bpwr);

broot=(Button)findViewById(R.id.broot);

bmod=(Button)findViewById(R.id.bmod);

one=(Button)findViewById(R.id.b1);

two=(Button)findViewById(R.id.b2);

three=(Button)findViewById(R.id.b3);

four=(Button)findViewById(R.id.b4);

five=(Button)findViewById(R.id.b5);

six=(Button)findViewById(R.id.b6);

seven=(Button)findViewById(R.id.b7);

eight=(Button)findViewById(R.id.b8);

nine=(Button)findViewById(R.id.b9);

zero=(Button)findViewById(R.id.b0);

equal=(Button)findViewById(R.id.bequal);

clear=(Button)findViewById(R.id.bc);

bsin.setOnClickListener(this);

bcos.setOnClickListener(this);

btan.setOnClickListener(this);

bsec.setOnClickListener(this);

bcsc.setOnClickListener(this);

bcot.setOnClickListener(this);

bln.setOnClickListener(this);

blog.setOnClickListener(this);

bpwr.setOnClickListener(this);

broot.setOnClickListener(this);

bmod.setOnClickListener(this);

//numbers

one.setOnClickListener(this);

two.setOnClickListener(this);

three.setOnClickListener(this);

four.setOnClickListener(this);

five.setOnClickListener(this);

six.setOnClickListener(this);

seven.setOnClickListener(this);

eight.setOnClickListener(this);

nine.setOnClickListener(this);

zero.setOnClickListener(this);

equal.setOnClickListener(this);

clear.setOnClickListener(this);

}

@Override

public boolean onCreateOptionsMenu(Menu menu) {

// Inflate the menu; this adds items to the action bar if it is present.

getMenuInflater().inflate(R.menu.main, menu);

return true;

}

@Override

public void onClick(View v) {

if(v.equals(one))

num.setText(num.getText()+""+one.getText());

if(v.equals(two))

num.setText(num.getText()+""+two.getText());

if(v.equals(three))

num.setText(num.getText()+""+three.getText());

if(v.equals(four))

num.setText(num.getText()+""+four.getText());

if(v.equals(five))

num.setText(num.getText()+""+five.getText());

if(v.equals(six))

num.setText(num.getText()+""+six.getText());

if(v.equals(seven))

num.setText(num.getText()+""+seven.getText());

if(v.equals(eight))

num.setText(num.getText()+""+eight.getText());

if(v.equals(nine))

num.setText(num.getText()+""+nine.getText());

if(v.equals(zero))

num.setText(num.getText()+""+zero.getText());

/*if(v.equals(clear))

num.setText("0");*/

input = Double.valueOf(num.getText().toString());

switch(v.getId())

{

case R.id.bsin:

output= Math.sin(input);

answer=String.valueOf(output);

num.setText(answer);

break;

case R.id.bcos:

output= Math.cos(input);

answer=String.valueOf(output);

num.setText(answer);

break;

case R.id.btan:

output= Math.tan(input);

answer=String.valueOf(output);

num.setText(answer);

break;

case R.id.bcsc:

output= 1/Math.sin(input);

answer=String.valueOf(output);

num.setText(answer);

break;

case R.id.bsec:

output= 1/Math.cos(input);

answer=String.valueOf(output);

num.setText(answer);

break;

case R.id.bcot:

output= 1/ Math.tan(input);

answer=String.valueOf(output);

num.setText(answer);

break;

case R.id.blog:

output = Math.log(input);

answer=String.valueOf(output);

num.setText(answer);

break;

case R.id.bln:

output = 2.30258*Math.log(input);

answer=String.valueOf(output);

num.setText(answer);

break;

case R.id.bpwr:

num.setText("");

equal.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View arg0) {

// TODO Auto-generated method stub

input2= Double.valueOf(num.getText().toString());

output = Math.pow(input, input2);

answer=String.valueOf(output);

num.setText(answer);

}

});

break;

case R.id.broot:

output= Math.sqrt(input);

answer=String.valueOf(output);

num.setText(answer);

break;

case R.id.bc:

Intent intent = getIntent();

finish();

startActivity(intent);

break;

}

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值