Question: Why does my code crash when nextDouble picks up a decimal with a dot . ?

Answer: Your Scanner's locale is French, which uses , for decimals. Tell Scanner to use an English locale.

import java.util.Locale;

Scanner scan = new Scanner(System.in).useLocale(Locale.ENGLISH);  

As you autocompleteLocale, make sure it gets imported (see line 1).