2013-04-28 38 views
1

我正在努力与此。我知道如何编写代码来确定数字是否在1.0和10.0之间。假设noOfJudges是有效的输入端(3之间和9)基本的Java - 验证间隔小数

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(); 

为变量A有效的输入将是1.0和10.0之间,增量为0.5,即4.2不是有效的输入,但是4.5。不知道如何继续在这里...

+0

'4.55'和'4.45',它们有效吗? – vidit 2013-04-28 03:13:03

+0

没有1.0,1.5,2.0,2.5,3.0,3.5 ... 9.0,9.5和10.0是有效输入 – Darw1n34 2013-04-28 03:20:13

回答

0

使用这样的事情

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

看到链接for-loop, increment by double您如何USR整数循环,以防止浮点运算的文物被咬伤

+0

这只适用于偶然事件,因为0.5在浮点数中可以精确地表示*。用0.1来试试这个,并且舍入错误可能会伤害到你。 – 2013-04-28 03:09:54

2

乘以输入2并检查它是否在2.0和20.0之间,然后通过将其转换为int来截断小数位,并检查截断值是否等于原始值(d == (double)(int)d),或者舍入输入并查看它是否等于原始输入(d == Math.round(d)