1

私はこれに苦労しています。数値が 1.0 から 10.0 の間であるかどうかを判断するコードの書き方を知っています。noOfJudges が有効な入力 (3 から 9 の間) であると仮定します。

for(noOfJudges = 0; noOfJudges < scores.length; noOfJudges++) {  
  scores[noOfJudges]=console.nextDouble();
  while((scores[noOfJudges] < 1.0)||(scores[noOfJudges] > 10.0)) {
    System.out.print("Please reenter the score (must be between 1.0 and 10.0, in .5 increments): ");
    scores[noOfJudges] = console.nextDouble();
    System.out.println();
  }
  System.out.println();

変数の有効な入力値は 1.0 から 10.0 の間で、0.5 刻みです。つまり、4.2 は有効な入力値ではありませんが、4.5 は有効です。ここの進め方がわからない…

4

2 に答える 2

2

入力に ​​2 を掛けて 2.0 から 20.0 の間であるかどうかを確認し、int にキャストして小数点以下の桁数を切り捨て、切り捨てられた値が元の値と等しいかどうかを確認する ( d == (double)(int)d)、または入力を丸めて元の値と等しいかどうかを確認します。入力 ( d == Math.round(d))

于 2013-04-28T03:05:02.107 に答える
0

このようなものを使用してください

   for(double i = 1; i < 10.0; i+=0.5) {
//...
}

リンクfor-loop を参照してください。整数ループを使用して、浮動小数点演算のアーティファクトに噛まれるのを防ぐ方法を2 倍に増やします。

于 2013-04-28T03:05:01.460 に答える