使用 Delphi 将 JLong 转换为 Double 类型
JLong to Double type casting with Delphi
我在网上搜索了如何将 JLong (JavaType) 转换为 Double 以在 C++ 代码中使用它,但没有找到示例。
我尝试了多种方法来投射这个 JLong,但 none 有效。
function TimeSinceBoot(const aContext: JContext): Double;
begin
result := (((TJSystemClock.JavaClass.ELAPSED_REALTIME div 1000(JLong)) div 60(JLong))(JDouble))(Double);
end;
上面写的还是运算符或;失踪。
有什么建议吗?
除了你 使用错误的语法来转换 (并且转换语法无论如何都是 well documented), in Delphi, you can't cast an integral type to a floating point type 之外。你当然不能将 JLong 转换为双.
但显然,在 Delphi 翻译中,JLong
是一个带有名为 doubleValue
方法的接口。使用那个:
Result := TJSystemClock.JavaClass.ELAPSED_REALTIME.doubleValue / 60000.0;
我在网上搜索了如何将 JLong (JavaType) 转换为 Double 以在 C++ 代码中使用它,但没有找到示例。 我尝试了多种方法来投射这个 JLong,但 none 有效。
function TimeSinceBoot(const aContext: JContext): Double;
begin
result := (((TJSystemClock.JavaClass.ELAPSED_REALTIME div 1000(JLong)) div 60(JLong))(JDouble))(Double);
end;
上面写的还是运算符或;失踪。 有什么建议吗?
除了你 使用错误的语法来转换 (并且转换语法无论如何都是 well documented), in Delphi, you can't cast an integral type to a floating point type 之外。你当然不能将 JLong 转换为双.
但显然,在 Delphi 翻译中,JLong
是一个带有名为 doubleValue
方法的接口。使用那个:
Result := TJSystemClock.JavaClass.ELAPSED_REALTIME.doubleValue / 60000.0;