You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MongoDB Java更新时如何将浮点值转换为整数?

解决MongoDB乘积结果转整数的问题

你可以通过MongoDB的类型转换或取整操作符,将$multiply的结果转为整数,根据业务需求选择以下方案:

1. 截断小数转为整数($toInt)

适合仅保留整数部分、舍弃所有小数的场景,例如1.9转成1,2.1转成2。

修改后的Java代码:

final Bson update = set("percent_view", 
    new BasicDBObject("$toInt", 
        new BasicDBObject("$multiply", Arrays.asList("$viewtime", percent))
    )
);

2. 四舍五入取整($round)

需要将结果四舍五入到最近整数时使用,例如1.4转1,1.6转2。

代码示例:

final Bson update = set("percent_view", 
    new BasicDBObject("$round", 
        Arrays.asList(new BasicDBObject("$multiply", Arrays.asList("$viewtime", percent)), 0)
    )
);

注:$round的第二个参数代表保留小数位数,设为0即实现取整。

3. 向下取整($floor)

无论小数部分是多少,取小于等于当前值的最大整数,例如1.9转1,-1.1转-2。

代码示例:

final Bson update = set("percent_view", 
    new BasicDBObject("$floor", 
        new BasicDBObject("$multiply", Arrays.asList("$viewtime", percent))
    )
);

4. 向上取整($ceil)

取大于等于当前值的最小整数,例如1.1转2,-1.9转-1。

代码示例:

final Bson update = set("percent_view", 
    new BasicDBObject("$ceil", 
        new BasicDBObject("$multiply", Arrays.asList("$viewtime", percent))
    )
);

根据实际业务场景选择对应方式即可,比如统计类场景常用四舍五入,计数类场景常用截断转整数。

内容的提问来源于stack exchange,提问作者khateeb

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 05:38:20