将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);