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

Java中如何提取double类型小数部分并转换为整数?

提取double类型数值小数点右侧部分并转为整数

针对double类型数值(如123.987)提取小数点右侧部分并转为整数,这里提供两种实用方法,同时注意处理double的精度陷阱:

方法一:字符串分割法

将double转为字符串后按小数点分割,提取右侧子串再转整数。这种方法直观,但需处理无小数位的情况:

double num = 123.987;
String numStr = String.valueOf(num);
int decimalPart = 0;

if (numStr.contains(".")) {
    String[] parts = numStr.split("\\.");
    // 若小数部分过长,可按需截取长度
    decimalPart = Integer.parseInt(parts[1]);
}
// 此时decimalPart为987

注意:如果数值是整数(如123.0),分割后只有一个元素,需默认返回0。

方法二:BigDecimal精确处理法

由于double存在精度丢失问题(例如123.987实际存储可能是123.98699999999999),用BigDecimal能避免这类问题:

double num = 123.987;
BigDecimal bd = new BigDecimal(String.valueOf(num));
// 获取小数部分并移动小数点转为整数
int decimalPart = bd.remainder(BigDecimal.ONE)
                    .movePointRight(bd.scale())
                    .intValue();
// 结果为987

这种方法适合对精度要求高的场景,能准确处理各种小数位数的情况。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 06:45:33