代码:
double indSRate[] = new double[c.getCount()];
indSRate[e++] = c.getDouble(c.getColumnIndex("s_rate"));
if (String.valueOf(indSRate[s]) == null) {
Log.d("Special Rate", String.valueOf(indSRate[s++]));
}
用户在编辑文本字段中将 s_rate 列中的字段留空。我是不是以某种方式把它变成了双胞胎?
在循环内部,如果字段为空,我想做某些事情,如果不是,我想做其他事情。但它似乎是 0 或更大?我无法测试它是“0”还是其他东西。我必须在 isEmpty 与否之间进行测试?
最佳答案
像 double 和 int 这样的原始数据类型不能为 null 或“空”...当您将它们转换为 String 时,默认值分别为“0.0”和“0”。
添加
您可以检查 double 的值是否为 0.0
:
if(indSRate[s] == 0.0) { // default value
Log.d("Special Rate", String.valueOf(indSRate[s++]));
}
或:
int rateIndex = c.getColumnIndex("s_rate");
while(c.moveToNext()) {
if(c.isNull(rateIndex))
Log.d("Special Rate", "Null");
indSRate[e++] = c.getDouble(rateIndex);
}
有很多解决方案...
关于java - 为什么我在 Java/Android 中得到空 SQLite 字段的 "0.0"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10760996/