2013-04-28 30 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)