java - 为什么我在 Java/Android 中得到空 SQLite 字段的 "0.0"?

标签 java android sqlite double

代码:

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/

相关文章:

java - 如何提高Java中搜索特定Google Drive文件的效率?

java - Graphics2D动画,无法理解为什么paintComponent只绘制一次形状然后停止

android - 如何检索 Intent 请求的 Activity

java - Android 查看资源膨胀

java - Android - 在 SQLite 数据库中搜索数据的最快方法

java - 无法解析符号 'DateTime'

Java Generic 不推断类型

android - 我应该为我的应用程序使用 fragment 或 Activity 吗?

android - 在 Android 应用程序中显示特定 Activity 的数据

Android 性能 : Flat file vs SQLite