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

Java如何去除整数部分,仅提取数值的小数部分?

示例输出

示例输出

Java提取求和结果小数部分的实现方法

以下是两种不同场景下的实现方案:

方法1:取模运算实现(适合普通低精度场景)

核心逻辑为数值对1取模后直接返回小数部分,实现简单高效:

public class DecimalExtractor {
    public static void main(String[] args) {
        // 模拟用户输入求和后的结果
        double sum = 127.68;
        // 对1取模直接得到小数部分
        double decimalPart = sum % 1;
        // 若需要统一返回正小数,可新增绝对值处理
        // decimalPart = Math.abs(decimalPart);
        System.out.println("提取的小数部分:" + decimalPart);
    }
}

注意:该方案存在浮点精度丢失问题,仅适合非敏感业务场景使用

方法2:BigDecimal实现(高精度场景推荐)

针对财务、计量等对精度要求高的场景,使用BigDecimal处理可完全避免精度丢失问题:

import java.math.BigDecimal;
import java.math.RoundingMode;

public class HighPrecisionDecimalExtractor {
    public static void main(String[] args) {
        // 模拟高精度求和结果,必须传入字符串构造避免精度丢失
        BigDecimal sum = new BigDecimal("256.1234567890123456");
        // 提取整数部分
        BigDecimal integerPart = sum.setScale(0, RoundingMode.DOWN);
        // 总和减去整数部分得到精确小数部分
        BigDecimal decimalPart = sum.subtract(integerPart);
        System.out.println("提取的高精度小数部分:" + decimalPart);
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 01:27:03