Di solito queste cose dipendono dalla localizzazione, dà un'occhiata alla documentazione alla voce "Localized numbers": http://docs.oracle.com/javase/7/docs...l/Scanner.html
La localizzazione specifica anche qual è il separatore fra parte intera e parte decimale, guarda qual è il Locale di default sul tuo sistema, magari prevede la virgola. Se il tuo programma dipende da questo, assicurati che venga sempre utilizzato un Locale compatibile, oppure scrivi un codice più flessibile.