将jdouble转换为c类型的double

如何将java类型变量的jdouble转换为c类型的double变量?

你不必,它只是一个类似于这样的typedef:

 typedef double jdouble; 

因此,不需要转换,一旦你有一个jdouble你可以把它当作double对待。

例如,参见Standford的这个代码示例 :

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

添加是直接使用jdouble值完成的,信任编译器以确定如何生成所需的代码。

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

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