Orientdb 在orient db中,如何将十进制值四舍五入

Orientdb 在orient db中,如何将十进制值四舍五入,orientdb,Orientdb,在orientdb中,我有一个问题的示例查询 select eval('((23 + 46) * 1.0 ) / 2') as abc from SomeClass 上面的查询返回34.5,我想把它四舍五入到35。我申请了asInteger(),但没有成功 select eval('((23 + 46) * 1.0 ) / 2').asInteger() as abc from SomeClass 上面的查询返回34,但我希望它是35,我不知道是否有一些本机函数可以实现这一点 但是您

在orientdb中,我有一个问题的示例查询

select  eval('((23 + 46) *  1.0 ) / 2') as abc from SomeClass
上面的查询返回34.5,我想把它四舍五入到35。我申请了asInteger(),但没有成功

select  eval('((23 + 46) *  1.0 ) / 2').asInteger() as abc from SomeClass

上面的查询返回34,但我希望它是35,我不知道是否有一些本机函数可以实现这一点

但是您可以使用Studio创建一个javascript函数,例如ceil

在身体里做工作

尝试插入此函数

insert into OFunction set name = 'ceil', language = 'javascript', code = 'return Math.ceil(num);', parameters = ["num"]
然后

select  ceil(eval('((23 + 46) *  1.0 ) / 2'))

由于此函数不是现成的,因此您可以定义自己的函数(打开Studio->Functions tab),其名称为“round”,使用以下代码获取1个参数“value”:

return java.lang.Math.round(value);
然后,您可以使用以下命令从SQL调用它:

select round(value) as abc from SomeClass

其中value是SomeClass类中的属性。

当您添加0.5并调用.asInteger()时,您还可以执行某种取整操作。