在Java中加倍很奇怪吗?

时间:2019-02-20 01:58:33

标签: java

因此,我目前正在用Java编程方法/类,从而在给定a,b,c的情况下找到二次方程的根。我将变量a,b和c声明为双精度。这是我的一些代码:

discriminant = Math.pow(b,2) - 4*a*c, 0.5;
System.out.println("Discriminant is " + discriminant);
System.out.println("numerator is " + -b + Math.pow(discriminant,0.5));
System.out.println("square root of discriminant is " + Math.sqrt(discriminant));

因此,我使用的示例是a = 5,b,= 6和c = 1。 我有错误的根源,因此尝试通过上面的print语句对其进行调试。 每当我将-b和Math.pow(discriminant,0.5)一起添加(对于第一个根)时,我都会得到一个非常奇怪的数字。我应该得到-6 + 4 = -2,但它显示-6.04.0。

这肯定是一个业余错误,但是我似乎无法在任何地方在线找到类似的错误。为什么会有两个小数点?您不是应该添加这样的双打吗?

非常感谢大家对此提供的任何意见。

1 个答案:

答案 0 :(得分:5)

此说明:

System.out.println("numerator is " + -b + Math.pow(discriminant,0.5));

只是将数字转换为String,然后执行字符串连接。 试试:

System.out.println("numerator is " + (-b + Math.pow(discriminant,0.5)));