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