gpt4 book ai didi

c++ - 如何在 C++ 中声明和初始化 BigDecimal

转载 作者:太空狗 更新时间:2023-10-29 21:00:09 24 4
gpt4 key购买 nike

我正在尝试从 C++ 代码调用 java 方法,因为我正在使用 JNI,我能够调用 java 方法但是在调用期间我想在 c++ 中使用 BigDecimal,你能帮我使用 BigDecimal(如何在 C++ 代码中声明和初始化)。

最佳答案

BigDecimal 只是 native 部分的 java 对象。
所以首先你需要创建它。因此,您需要一个类和一个方法 ID。

jclass cls = (*env)->FindClass(env, "java/math/BigDecimal");
jmethodID = mid = (*env)->GetMethodID(env, cls, "<init>", "(D)V");

这将是 BigDecimal 的构造函数取一个 double。
在此之后,您可以创建两个对象。

jobject bd1 = (*env)->NewObject(env,cls, mid, 1.222);
jobject bd2 = (*env)->NewObject(env,cls, mid, 0.0500);

现在您有两个 BigDecimal,您可以将一个添加到另一个。
首先,您需要再次使用 add 方法 ID。

jmethodID mid2 = (*env)->GetMethodID(env, cls, "add", "(Ljava/math/BigDecimal;)Ljava/math/BigDecimal;");

然后就可以调用了。

jobject sum = (*env)->CallObjectMethod(env,bd1,mid2,bd2);

现在您有了前两个 BigDecimal 的总和。要将其打印出来,您可以使用 doubleValue() 函数。

关于c++ - 如何在 C++ 中声明和初始化 BigDecimal,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22896945/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com