Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/382.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 字符串不能转换为双错的JOptionPane进行输入?_Java_Variables - Fatal编程技术网

Java 字符串不能转换为双错的JOptionPane进行输入?

Java 字符串不能转换为双错的JOptionPane进行输入?,java,variables,Java,Variables,我不断收到错误“字符串无法转换为双精度”我已经尝试过将变量重新定义为int,但这似乎不起作用-我只是收到一个标志,表明将double转换为int时会发生丢失。我很好奇,在调用用户输入时,我是否使用了错误的JOptionPane,或者我的变量声明是否错误 任何帮助都将不胜感激 package pf_javaass01c; import javax.swing.JOptionPane; public class ConversionCalculator { final static Str

我不断收到错误“字符串无法转换为双精度”我已经尝试过将变量重新定义为int,但这似乎不起作用-我只是收到一个标志,表明将double转换为int时会发生丢失。我很好奇,在调用用户输入时,我是否使用了错误的JOptionPane,或者我的变量声明是否错误

任何帮助都将不胜感激

package pf_javaass01c;
import javax.swing.JOptionPane;
public class ConversionCalculator 
{
    final static String HEADING = "Conversion Calculator";
    final static double CONVERSION = 0.6214;
    final static double PI = 3.14159;

    public static void main(String[] args) 
    {
        // Input Variables
        double kilometers, convertedKilometers, miles, convertedMiles;
        double width, length, areaRectangle, perimeterRectangle;
        double radius, circumference, areaCircle;

        // Kilometer to Miles Calculator
        kilometers = JOptionPane.showInputDialog(null, "Please enter a kilometer value you wish to convert to miles;", HEADING,     JOptionPane.QUESTION_MESSAGE);
        convertedKilometers = kilometers * CONVERSION;
        JOptionPane.showMessageDialog(null, kilometers + " kilometers is equal to " + convertedKilometers + " miles.", HEADING, JOptionPane.INFORMATION_MESSAGE);
         } // End of main

} // End of ConversionCalculator

JOptionPane
返回的值是一个
字符串
。您正试图将该值放入
公里数
,这是一个
双精度
。你基本上是想把一个球体放进一个三角形的洞里。结果,出现了错误

解决方案是简单地将字符串解析或转换为double。为此,请调用
Double.parseDouble()


parseDouble()是一个新变量的答案,它允许用户输入转换为Double

您已经展示了相当多的代码-错误到底在哪里?这是编译时错误还是执行时错误?请将其减少为(理想情况下包括导入,这样我们就可以复制/粘贴/编译/运行)。
showInputDialog()
for
JOptionPane
返回一个
字符串。公里数是双倍的。您不能将字符串分配给double,您需要将其转换。谢谢,我现在已经找到了@如果你认为我的答案能回答你的问题,请考虑通过点击那个检查标记来接受它!
// get the user input and put it into a string variable first
String userInput = JOptionPane.showInputDialog(null, "Please enter a kilometer value you wish to convert to miles;", HEADING,     JOptionPane.QUESTION_MESSAGE);
// parse the user's input and assign the result to kilometers
kilometers = Double.parseDouble(userInput);