如何将java类型变量的jdouble
转换为c类型的double
变量?
答案 0 :(得分:6)
你不必,它只是一个类似于这样的类型:
typedef double jdouble;
因此,无需转换,只要您拥有jdouble
,就可以将其视为double
。
例如,见code example from Standford:
JNIEXPORT jdouble JNICALL Java_Summer_sum__DD
(JNIEnv *env, jobject jobj, jdouble j1, jdouble j2) {
return j1 + j2;
}
直接使用jdouble
值进行添加,信任编译器以确定如何生成所需的代码。
答案 1 :(得分:0)
不需要转换。我使用了一个简单的静态演员。
jfieldID varPtr = env->GetFieldID(dataClass, "var", "D");
jdouble jdoubleVar = env->GetDoubleField(dataClass, varPtr);
double varDouble = static_cast<double>(jdoubleVar);