我需要将一个intvariables转换为double
可能重复:
Java整数部分:你如何产生一个双?
我的朋友正在尝试做一些类似的计算任务,他有一些麻烦,我希望你能帮助他。
问题是他从用户那里得到一个input(它必须是它的一部分)。 他正试图在下面的代码中将其转换为double,但这不起作用。 反正结果是int。
double firstSolution = ((b1 * a22 - b2 * a12) / (a11 * a22 - a12 * a21)); double secondSolution = ((b2 * a11 - b1 * a21) / (a11 * a22 - a12 * a21)); 如果你需要更多的解释,我会问他。 提前致谢!
 您必须将一个(或两个)参数投给除法运算符以double : 
 double firstSolution = (b1 * a22 - b2 * a12) / (double)(a11 * a22 - a12 * a21); 
既然你正在执行相同的计算两次,我build议重构你的代码:
 double determinant = a11 * a22 - a12 * a21; double firstSolution = (b1 * a22 - b2 * a12) / determinant; double secondSolution = (b2 * a11 - b1 * a21) / determinant; 
 这个工作方式是一样的,但是现在有一个隐含的转换加倍。 从int到double这种转换是扩展原始转换的一个例子。 
转换为double可以通过将int转换为double来完成:
你可以使用这个机制来把int转换成double:
 int i = 3; // i is 3 double d = (double) i; // d = 3.0 
另类(使用Java的自动types识别):
 double d = 1.0 * i; // d = 3.0 
在你的代码中实现这个是这样的:
 double firstSolution = ((double)(b1 * a22 - b2 * a12) / (double)(a11 * a22 - a12 * a21)); double secondSolution = ((double)(b2 * a11 - b1 * a21) / (double)(a11 * a22 - a12 * a21)); 
或者,您可以使用double(1.0)types的硬参数来让Java为您工作,如下所示:
 double firstSolution = ((1.0 * (b1 * a22 - b2 * a12)) / (1.0 * (a11 * a22 - a12 * a21))); double secondSolution = ((1.0 * (b2 * a11 - b1 * a21)) / (1.0 * (a11 * a22 - a12 * a21))); 
祝你好运。
 我认为你应该通过调用方法doubleValue()来施放variables或使用Integer类。 
 或者像其他人所说的那样使用转换,或者将其中一个intvariables乘以1.0 : 
 double firstSolution = ((1.0* b1 * a22 - b2 * a12) / (a11 * a22 - a12 * a21));