
ポイントカードのポイント計算システムで、下記の2つのクラスを持つプログラムをつくろうとしているんですが、以下のエラーが発生してしまい、どのように対処してよいか分かりません、、、
あと、プログラムとしても、このコードで正しいのかどうかもまだ実行できていないのでわからず不安です。。
どなたか教えていただけませんでしょうか。
1つ目のクラス
フィールド: 現在のポイント数
メソッド: 購入する商品の金額を引数として、購入後のポイントを計算するメソッド(ポイント付与率は2%)
2つ目のクラス
1つ目のクラスのフィールドに、現在のポイント数を設定
標準入力から、購入する商品の金額を入力
1つ目のクラスのメソッドを使って商品購入後のポイント数を計算し、結果を標準出力で出力
以下のエラーメッセージが発生しました。
発生している問題・エラーメッセージ
H:\>javac PointsManage.java Pointcard.java PointsManage.java:28: エラー: 不適合な型: 精度が失われる可能性があるdoubleからin tへの変換 finalPoint = (pt.nowPoint + pt.buyPoint) *0.02; ^ エラー1個 H:\>
該当のソースコード
Java
1「2つ目のクラス」になります 2// ポイントカードの情報を処理するクラス 3import java.io.*; 4import java.lang.*; 5public class PointsManage { 6 public static void main(String[] args) { 7 String str; 8 int finalPoint,nowPoint,buyPoint; 9 try { 10 // 現在のポイント数を設定 11 PointCard pt = new PointCard(); 12 pt.nowPoint = 1000; 13 pt.buyPoint=0; 14 //標準入力の準備 15 BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); 16 System.out.println("今回の購入金額を入力してください。"); 17 str = reader.readLine(); 18 buyPoint = Integer.parseInt(str); 19 pt.buyPoint = buyPoint; //標準入力されたポイントをポイントカードクラスのオブジェクトの「buyPoint」フィールドに代入 20 // ポイントカードクラスに定義されている、商品購入後のポイント数を計算するメソッドを呼び出し 21 finalPoint = (pt.nowPoint + pt.buyPoint) *0.02; 22 23 // 計算結果を出力 24 System.out.println("付与されたポイントは" + finalPoint + "ポイントです。"); 25 } 26 catch(IOException e) { 27 System.out.println("標準入力でエラーが発生しました。"); 28 } 29 } 30}
以下は「1つ目のクラス」に値するコードです
// ポイントカードの情報を管理するクラス
import java.io.;
import java.lang.;
public class PointCard {
// str: 標準入力したもの
String str;
// studentNumber: 生徒の出席番号
int nowPoint,buyPoint;//nowPoint:現在のポイント数,buyPoint:購入金額,
int finalPoint;//finalPoint:商品購入後のポイント数を計算するメソッド
}
試したこと
double型でfinalPoint,nowPoint,buyPointを定義し、strをdouble型で読み込んでも、
上のソースコードのようにint型で定義しても上のエラーメッセージがどうしても出てしまいます・・
小数点を含む計算の場合、int型ではダメだということでしょうか・・??
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。

バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2018/11/26 04:03
2018/11/26 04:06
2018/11/26 04:07 編集
退会済みユーザー
2018/11/26 04:28