程序首先会将let
从sql加载到vector。然后它将与"Type"
进行比较。如果String a
中的值等于"Type"
,则返回0.1。如果没有,它将返回0.0。
但是当我编译时,即使a
等于a
,我也会得到此输出。为什么?
"Type"
代码
0.0
0.0
答案 0 :(得分:1)
此代码10/100
执行Java的整数除法,因为两个操作数都是int
s。由int
s除法必须产生int
,结果是截断的int
- 0
。将结果分配给double
并不重要;那个部门已经发生了。
使用double
字面值:
10.0/100
或将操作数转换为double
:
(double) 10/100
或直接初始化:
c = 0.1;
另一个问题是,您正在尝试将ArrayList
(称为r
)与String
(称为a
)进行比较。 ArrayList
永远不会等于String
。目前还不清楚你为什么用一个元素创建ArrayList
只是为了将该元素与从数据库中返回的元素进行比较。这是不必要的。只是直接比较字符串。
// May want to check for null here.
String r = rs.getString("Type");
if (a.equals(r))
{