我刚刚开始学习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,我不能理解我做错了什么。
3条答案
按热度按时间i86rm4rw1#
像你那样使用扫描仪有点失控。例如,扫描器期望的格式依赖于区域设置。例如,如果系统设置为德语,则需要输入
3,7
两倍于3.7
.如果输入字符串的格式无效,则可能会引发异常
java.util.InputMismatchException
. 您应该捕获异常并以适合您的用例的方式进行响应。为了更好地控制所使用的语言环境,应该从控制台读取字符串,然后使用
java.text.NumberFormat
. 看看这个问题。enyaitl32#
@利斯特给我指出了正确的方向。是键盘设置。我住在英国,习惯用点写十进制数。然而,我的键盘设置为波兰程序员的。在波兰,十进制数字是用“,”写的。一旦我改变了设置,我就不再有这个问题了。我从没想过。谢谢@leisetreter。
watbbzwu3#
我看不出你的代码有任何错误。除了主站。你给她打电话的正确方式是
public static void main (String args[])