ただし計算結果に200.0とかが出力されるようになってしまった
おもうに、
計算結果を10倍して10で割り切れたらintに入れるなどしたらよいのだろうか?
package application;
import javafx. application.Application;
import javafx.event.ActionEvent;
import javafx. scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.control.TextField;
import javafx.scene.layout.BorderPane;
import javafx.scene.layout.HBox;
import javafx.scene.layout.VBox;
import javafx. stage.Stage;
public class Calculator_from_EXE3109 extends Application {
int foo=0;//何の記号がおされたか格納する
double hogenum;//数字を格納
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage myStage) {
Label l1;
l1 = new Label("");
TextField tf1 = new TextField("入力できます");
Button b1 = new Button("=");
Button b2 = new Button("削除");
Button b3 = new Button("+");//foo=1
Button b4 = new Button("-");//foo=2
Button b5 = new Button("*");//foo=3
Button b6 = new Button("/");//foo=4
//------------
//paneさん
//------------
HBox pane3 = new HBox();
pane3.getChildren().addAll(b3,b4,b5,b6);
VBox pane2 = new VBox();
pane2.getChildren().addAll(tf1,b1,b2);
BorderPane pane = new BorderPane();
pane.setStyle("-fx-background-color:cyan;");
pane.setTop(pane2);
pane.setCenter(pane3);
pane.setBottom(l1);
//------------
//各種ボタンさん
//------------
//=ボタン
b1.setOnAction((ActionEvent event)->{
if(foo == 1) {//足し算がおされたあとの入力
hogenum =add(tf1.getText());
}else if(foo == 2) {//ひき算がおされたあと
hogenum =subtraction(tf1.getText());
}else if(foo == 3) {//かけ算がおされたあと
hogenum =multiplication(tf1.getText());
}else if(foo == 4) {//わり算がおされたあと
hogenum =division(tf1.getText());
}
tf1.setText("計算結果は"+hogenum);
});
//+ボタン
b3.setOnAction((ActionEvent event)->{
if(foo==0) {//なにも押されてないときの入力
hogenum =add(tf1.getText());
}else{//たし算ボタンがおされたあとの入力
if (foo==1) {
hogenum =add(tf1.getText());
}else if(foo==2) {
hogenum =subtraction(tf1.getText());
}else if(foo==3) {
hogenum =multiplication(tf1.getText());
}else if(foo==4) {
hogenum =division(tf1.getText());
}
}
tf1.setText("");
foo=1;//最後に押された記号は足す
});
//-ボタン
b4.setOnAction((ActionEvent event)->{
if(foo==0) {//なにも押されてないときの入力
hogenum =add(tf1.getText());
}else{//ひき算ボタンがおされたあとの入力
if (foo==1) {
hogenum =add(tf1.getText());
}else if(foo==2) {
hogenum =subtraction(tf1.getText());
}else if(foo==3) {
hogenum =multiplication(tf1.getText());
}else if(foo==4) {
hogenum =division(tf1.getText());
}
}
tf1.setText("");
foo=2;//最後に押された記号はひく
});
//*ボタン
b5.setOnAction((ActionEvent event)->{
if(foo==0) {//なにも押されてないときの入力
hogenum =add(tf1.getText());
}else{//かけ算ボタンがおされたあとの入力
if (foo==1) {
hogenum =add(tf1.getText());
}else if(foo==2) {
hogenum =subtraction(tf1.getText());
}else if(foo==3) {
hogenum =multiplication(tf1.getText());
}else if(foo==4) {
hogenum =division(tf1.getText());
}
}
tf1.setText("");
foo=3;//最後に押された記号はかける
});
//わるボタン
b6.setOnAction((ActionEvent event)->{
if(foo==0) {//なにも押されてないときの入力
hogenum =add(tf1.getText());
}else{//わる算ボタンがおされたあとの入力
if (foo==1) {
hogenum =add(tf1.getText());
}else if(foo==2) {
hogenum =subtraction(tf1.getText());
}else if(foo==3) {
hogenum =multiplication(tf1.getText());
}else if(foo==4) {
hogenum =division(tf1.getText());
}
}
tf1.setText("");
foo=4;//最後に押された記号はわる
});
//削除ボタン
b2.setOnAction((ActionEvent event)->{
tf1.setText("");
l1.setText("");
hogenum=0;
foo=0;
});
Scene scene = new Scene(pane,350,350);//シーンのサイズ
myStage.setTitle("電子計算機");
myStage.setScene(scene);
myStage.show();
}
/*--- 関数 ---*/
public double add(String nyaa) {//たす
hogenum = hogenum + Double.parseDouble(nyaa);
System.out.println("here is in funcion add");
System.out.println("hogenumはいま"+hogenum);
System.out.println("fooはいま"+foo);
return hogenum;
}
public double subtraction(String nyaa) {//ひく
hogenum = hogenum - Double.parseDouble(nyaa);
System.out.println("here is in funcion subtraction");
System.out.println("hogenumはいま"+hogenum);
System.out.println("fooはいま"+foo);
return hogenum;
}
public double multiplication(String nyaa) {//かける
hogenum = hogenum * Double.parseDouble(nyaa);
System.out.println("here is in funcion multiplication");
System.out.println("hogenumはいま"+hogenum);
System.out.println("fooはいま"+foo);
return hogenum;
}
public double division(String nyaa) {//わる
hogenum = hogenum / Double.parseDouble(nyaa);
System.out.println("here is in funcion division");
System.out.println("hogenumはいま"+hogenum);
System.out.println("fooはいま"+foo);
return hogenum;
}
}