7

如何将jdoublejava 类型变量转换为doublec 类型的变量?

4

2 回答 2

8

你不必这样做,它只是一个像这样的 typedef:

typedef double jdouble;

所以不需要转换,一旦你有了 ajdouble你就可以把它当作double.

例如,请参见Standford的此代码示例:

JNIEXPORT jdouble JNICALL Java_Summer_sum__DD
(JNIEnv *env, jobject jobj, jdouble j1, jdouble j2) {
    return j1 + j2;
}

添加是直接使用jdouble值完成的,相信编译器会弄清楚如何生成所需的代码。

于 2012-05-09T12:17:52.483 回答
0

不需要转换。我使用了一个简单的静态演员表。

jfieldID varPtr = env->GetFieldID(dataClass, "var", "D");
jdouble jdoubleVar = env->GetDoubleField(dataClass, varPtr);

double varDouble = static_cast<double>(jdoubleVar);
于 2017-03-02T16:53:11.430 回答