简体   繁体   English

将jdouble转换为c类型的double

[英]converting jdouble to double of type c

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

You don't have to, it's just a typedef like so: 你不必,它只是一个类似于这样的typedef:

typedef double jdouble;

So no conversion is needed, once you have a jdouble you can treat it just as a double . 所以不需要转换,一旦你有一个jdouble你可以把它当作double对待。

See for instance this code example from Standford : 例如,参见Standford的这个代码示例

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

The addition is done directly with the jdouble values, trusting the compiler to figure out how to generate the required code. 添加是直接使用jdouble值完成的,信任编译器以确定如何生成所需的代码。

No convertion is needed. 不需要转换。 I've used a simple static cast. 我用过一个简单的静态演员。

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

double varDouble = static_cast<double>(jdoubleVar);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM