2016-04-28 102 views
0

我想輸入2個數字,一個是要退出的數量,另一個是餘額(它們之間有一個空格)。由於每次提款收取0.5的費用,餘額必須是雙倍。那是什麼必須打印。 我在nextDouble時出錯,爲什麼?我剛纔1個月編碼,我認爲這將是一塊蛋糕,我覺得基本語法30年前毀了我:(爲什麼從Scanner方法的nextDouble()向我發送「異常」

import java.util.Scanner; 

public class Test { 

public static void main(String[] args) { 
    //init variables 
    int amount; 
    double balance; 
    //insert amount and balance 
    Scanner input = new Scanner (System.in); 
    amount = input.nextInt(); 
    balance = input.nextDouble(); 
    //reduce amount+fee from balance 
    balance=balance-(amount + 0.50); 
    //print new balance 
    System.out.print(balance); 
    input.close(); 
} 
} 
+0

你給的是什麼輸入?還有什麼是你得到的確切例外。 – Codebender

+1

輸入爲「。」(點)小數點,但我的IDE設置爲「,」(逗號)。我已經足夠年紀了,當我們在我的國家改變成數學的逗號時,我仍然使用點。更改IDE配置來解決。 – Nooblhu

回答

2

它是依賴於語言環境,儘量用逗號,而不是點或反之亦然

例:的1,5代替1.5

+0

是的,我試圖使用語言環境,但然後我不得不轉換爲字符串,我不想要的,所以我改變了我的Eclipse默認設置爲英文美國使用「。」。小數沒有問題。 [如何做到這一點](https://stackoverflow.com/questions/4947484/how-to-set-eclipse-console-locale-language) – Nooblhu

0

您可以檢查,如果有一些int或double閱讀 你必須使用,或取決於。國家,你是。 如果你需要它的國家ind依賴,閱讀它作爲字符串,然後解析(見下文)

一個solication將讀取行作爲一個字符串,然後解析它然後int和double。

檢查是否雙可用:

input.hasNextDouble(); 

讀爲字符串:

String line = input.nextLine(); 
String[] sl = line.split(" "); 
amount = Integer.parseInt(sl[0]); 
balance = Double.parseDouble(sl[1]); //solve the problem with . and , 

你也可以檢查是否有足夠的投入。

相關問題