忍者ブログ

からすまる日誌 java

実践2(11) 電子計算機の自作 ダブル版

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

実践2(11) 電子計算機の自作 ダブル版

ただし計算結果に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;
 }
}
PR

コメント

ブログ内検索

P R