java - 我需要将一个 int 变量转换为 double

标签 java

我的 friend 正试图将某种计算作为类任务,但他遇到了一些麻烦。

问题是他从用户那里得到一个 int 输入(它必须是,它是任务的一部分)。他试图在下面的代码中将其转换为 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);

由于您要执行两次相同的计算,我建议您重构代码:

double determinant = a11 * a22 - a12 * a21;
double firstSolution = (b1 * a22 - b2 * a12) / determinant;
double secondSolution = (b2 * a11 - b1 * a21) / determinant;

这以相同的方式工作,但现在有一个 implicit 强制转换为 double。这种从 intdouble 的转换是 widening primitive conversion 的一个示例。 .

关于java - 我需要将一个 int 变量转换为 double,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13252903/

相关文章:

java - 在Java中将文本文件读入char数组

java - Spring事务回滚 `UPDATE`和 `INSERT`

java - 从 servlet 读取资源文件

java - maven中最新的javax.servlet.jsp jsp-api版本稳定吗?

内存泄漏

java - 从 Oracle Db 切换到 MySQL。命名查询不再有效

java.text.ParseException : Unparseable date : "..."

java - 启动更新检查程序线程,检查数据库中的新条目

java - 为什么这个 do-while 语句打印 20?

java - (Java) JPanel 未打印输出