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

如何提取字符串创建的scale为2的BigDecimal对象的值得到599

解决方案

要将scale为2的BigDecimal值5.99转换为整数599,最稳妥的方式是直接调用BigDecimal原生的movePointRight()方法右移小数点,避免自行处理精度或者字符串转换带来的异常问题。

示例代码

BigDecimal decimal = new BigDecimal("5.99");
// 右移小数点的位数等于BigDecimal的scale值,通用适配不同scale的场景
long result = decimal.movePointRight(decimal.scale()).longValue();
// 如果你确定当前对象scale固定为2,也可以直接写死位数
// long result = decimal.movePointRight(2).longValue();

执行后result的值就是你需要的599。


注意事项

  • 如果待处理的数值很大,超出了long类型的取值范围,可以改用toBigInteger()接收结果:
    BigInteger result = decimal.movePointRight(decimal.scale()).toBigInteger();
    
  • 不推荐通过转字符串替换小数点的方式实现,该方式需要额外处理科学计数法、本地化格式等边界场景,出错概率更高。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 08:36:05