java—如何将变量中的值存储为来自用户输入的双精度值?

e5njpo68  于 2021-07-05  发布在  Java
关注(0)|答案(3)|浏览(355)

我刚刚开始学习java编程,我不知道如何将用户输入的值存储为double。
这是我的密码:

package FirstProject;

       import java.util.Scanner;

       public class TripPlanner {

           public static void main () {
           Scanner console = new Scanner(System.in);
           System.out.print("How many " + currencySymbol + " are there in 1 USD? ");
           double conversion = console.nextDouble();
           }
       }

我不明白为什么当我输入时,例如19.5,它会给我异常错误。我的理解是,我将转换变量定义为double(double conversion),希望用户输入一个double(console.nextdouble();)。这是最基本的,但是来自python,我不能理解我做错了什么。

i86rm4rw

i86rm4rw1#

像你那样使用扫描仪有点失控。例如,扫描器期望的格式依赖于区域设置。例如,如果系统设置为德语,则需要输入 3,7 两倍于 3.7 .
如果输入字符串的格式无效,则可能会引发异常 java.util.InputMismatchException . 您应该捕获异常并以适合您的用例的方式进行响应。
为了更好地控制所使用的语言环境,应该从控制台读取字符串,然后使用 java.text.NumberFormat . 看看这个问题。

enyaitl3

enyaitl32#

@利斯特给我指出了正确的方向。是键盘设置。我住在英国,习惯用点写十进制数。然而,我的键盘设置为波兰程序员的。在波兰,十进制数字是用“,”写的。一旦我改变了设置,我就不再有这个问题了。我从没想过。谢谢@leisetreter。

watbbzwu

watbbzwu3#

我看不出你的代码有任何错误。除了主站。你给她打电话的正确方式是 public static void main (String args[])

相关问题